价值在 ASP.NET MVC 5 中迷失

问题描述 投票:0回答:1

我网页上的值之一没有到达控制器。

我有一个

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 之外,还有更好的方法吗?

asp.net-mvc-5
1个回答
0
投票

DescriptionTicket.cshtml
视图中存在拼写错误。

应该是这样的:

    function generateByKeyword() {
        var partByKey = '@Url.Action( "PartByKey", "PartsInformation")';
        $('#searchResults').load(partByKey,
            {
                Keyword: $('#keyword').val(),
                orderNumber: @Model.OrderNumber,
                dealerID: @Model.DealerID
            });
    }

因为控制器使用

orderNumber
变量。

© www.soinside.com 2019 - 2024. All rights reserved.