使用jQuery为model建立一个值

Par*_*Par 11 jquery model asp.net-mvc-3

如何使用jQuery为我的模型设置一个值?

我有一个输入字段(其id ="comment"),我希望将其中的文本插入到@Model.Comment 使用jQuery中.

就像是: @Model.Comment = $("#comment").val();

Dev*_*ave 41

我不同意Darin(他在这里回答了我的一半问题!)但是如果OP或其他任何人发现它有用的话,我会提出这个问题.

通过为模型值提供Html属性:

@Html.HiddenFor(x => x.Object.Id, new { id = "Id" } )
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用Jquery设置该值

$("#Id").val(5); // or whatever value
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了模型以空值返回到控制器的问题。我终于发现 `HiddenFor()` 和内联 JS **MUST** 包含在 `BeginForm()` 结束大括号/结束表单标签中。 (2认同)

Dar*_*rov 4

如何使用 jQuery 为我的模型设置值?

这没有任何意义。jQuery 在客户端上运行。模型位于服务器上。因此,当 jQuery 在客户端上执行时,服务器端代码和模型早已失效。

您可以从客户端执行的操作是将 AJAX 请求发送到服务器,并将输入字段的值传递给服务器,以便服务器可以采取相应的操作并更新模型:

$.ajax({
    url: '@Url.Action("foo")',
    type: 'POST',
    data: { comment: $("#comment").val() },
    function(result) {
        // TODO: process the server results
    }
});
Run Code Online (Sandbox Code Playgroud)

在服务器上,您将有一个将被调用的 Foo 控制器操作:

[HttpPost]
public ActionResult Foo(string comment)
{
    // TODO: do something with the value of the comment and return a result
    // to the client
    ...
} 
Run Code Online (Sandbox Code Playgroud)