在jquery中包含@Model属性发布到控制器

时间:2013-02-22 04:46:42

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

我刚开始使用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与我的帖子传回我的控制器。感谢。

1 个答案:

答案 0 :(得分:1)

您收到了日期,因为您是通过ajax post尝试

明确发送的
 data: {
         'Date': date,
         'ModelId':'@Model.Id'
        },

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

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

其中x指的是您的模型。如果第一个解决方案不起作用,请将id保存在隐藏字段中,然后在发送ajax调用之前获取隐藏字段的val,然后将其发送到ajax帖子