【问题标题】:Including @Model properties in jquery post to controller在 jquery 中包含 @Model 属性到控制器
【发布时间】:2013-02-22 04:46:41
【问题描述】:

我刚刚开始使用 asp.net/mvc3/jquery 等。我有一个 jquery datepicker,到目前为止我的工作是:

$(document).ready(function () {
    $('#ImplementationStart').datepicker({
        onSelect: function (date) {
            $.ajax({
                url: '/request/update/',
                type: 'POST',
                data: {
                    'Date': date
                },
                dataType: "json",
                success: function () {
                    alert("success");
                },
                error: function (xhr, textStatus, error) {
                    console.log(xhr.statusText);
                    console.log(textStatus);
                    console.log(error);
                }
            });
        }
    });
});

在我的控制器中,我有这个方法:

    [HttpPost]
    public ActionResult Update(DateTime date)
    {

看起来我的日期被传入了。我想做的是从日期选择器所在的 .cshtml 页面更新适当的模型对象。在该页面上,我显示了 @Model 属性,但我不确定如何将 @Model.Request.ID 与我的帖子一起传回我的控制器。谢谢。

【问题讨论】:

  • 只需将 Id 放在 input 中:hidden 活页夹会将其附加到模型上,这样您就可以得到一个很好的对象来使用,而不是 DateTime 您放置一些模型对象,例如 Person 或其他东西

标签: jquery asp.net asp.net-mvc-3


【解决方案1】:

你得到了日期,因为你是在ajaxpost尝试中明确发送的

 data: {
         'Date': date,
         'ModelId':'@Model.Id'
        },

如果您希望 id 在表单中可用,请将其包含在隐藏字段中,例如

@Html.HiddenFor(x=>x.Id)

x 指的是您的型号。如果第一个解决方案不适合您将 id 保留在隐藏字段中,并且在发送 ajax 调用之前获取隐藏字段的 val,然后将其发送到 ajax 帖子中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2018-09-28
    • 2016-11-22
    • 2012-03-21
    相关资源
    最近更新 更多