我网页上的值之一没有到达控制器。
我有一个
OrderDetailsModel
模型课:
public class OrderDetailsModel
{
public string SerialNumber { get; set; }
public string OrderNumber { get; set; }
}
在我的
PartsInformationController
中,我有一点 IBM DB2 SQL 来获取值:
public class PartsInformationController : Controller
{
public ActionResult DescriptionTicket(string sdsrno)
{
var daorno = "";
var sql = $@"
SELECT DAORNO
FROM {ViewBag.Library}.DLRINVAPF
WHERE DASRNO='{sdsrno}'";
using (var cmd = new OleDbCommand(sql, new OleDbConnection(_conn)))
{
cmd.Connection.Open();
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
daorno = $"{reader[0]}".Trim();
}
}
}
var model = new OrderDetailsModel()
{
SerialNumber = sdsrno,
OrderNumber = daorno
};
return View(model);
}
}
在
DescriptionTicket.cshtml
视图中,我有:
@model Website1.Models.OrderDetailsModel
@{
ViewBag.Title = "DescriptionTicket";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div id="grid-split">
<div>
<h1 class="center">PARTS SEARCH BY KEYWORD</h1>
<label>
Search By Keyword <input type="text" id="keyword" value="" /><button onclick="generateByKeyword()">Search</button>
</label>
</div>
<div id="searchResults">
</div>
</div>
<script>
function generateByKeyword() {
var partByKey = '@Url.Action( "PartByKey", "PartsInformation")';
var orderNumber =
$('#searchResults').load(partByKey,
{
Keyword: $('#keyword').val(),
Serial: @Model.OrderNumber,
dealerID: @Model.DealerID
});
}
</script>
当我点击“搜索”按钮时,
keyword
和dealerID
都有它们的值,但orderNumber
参数为空:
public ActionResult PartByKey(string keyword, string orderNumber, string dealerID)
{
var model = new PartSearchModel()
{
DealerID = dealerID,
OrderNumber = orderNumber,
};
}
我错过了什么?
除了使用 Javascript 之外,还有更好的方法吗?
DescriptionTicket.cshtml
视图中存在拼写错误。
应该是这样的:
function generateByKeyword() {
var partByKey = '@Url.Action( "PartByKey", "PartsInformation")';
$('#searchResults').load(partByKey,
{
Keyword: $('#keyword').val(),
orderNumber: @Model.OrderNumber,
dealerID: @Model.DealerID
});
}
因为控制器使用
orderNumber
变量。