在回发上输入文本返回NULL?

时间:2013-10-22 14:50:11

标签: c# jquery html asp.net asp.net-mvc-3

有人可以告诉我为什么复选框'userId'的id在POST

上返回null
<input type='checkbox' onclick='$("#userId").val("@user.Id"); return true; '/>

@using (Html.BeginFormAntiForgeryPost(Url.Action("Index", "ChangeUserAccount"), FormMethod.Post))
 {
   <input type="text" id="userId" />
   <input type="submit" id="btn" name="btnSubmit" value="Update" style="float:right;"  />
 }

[HttpPost, ActionName("Index")]
 [Authorize]
 public ActionResult IndexPOST(UserLoginRecordIndexVM model, int? userId)
    {

因此,在屏幕上,文本框包含复选框的正确ID,但是当我单击“更新”按钮时会返回NULL?

2 个答案:

答案 0 :(得分:2)

为什么不利用这个帮手:

 @Html.TextBox("userId", null, new { id = "userId" });

这会将相应的idname属性添加到您的文本框中。

答案 1 :(得分:1)

只需添加name属性:

<input type="text" id="userId" name="userId" />

但是,还要确保您的操作将其作为参数string userId接受,它是已发布回的模型的一部分。所以,在你的情况下你可能会这样做:

public ActionResult IndexPOST(UserLoginRecordIndexVM model, string userId)