【发布时间】:2014-02-17 22:51:21
【问题描述】:
我在 ASP.NET MVC 4 中通过 POST 传递值时遇到问题 这是我在用户控制器中的操作:
[HttpPost]
public string Show(int? uid, string uname)
{
return uname + uid.ToString();
}
这就是我尝试在视图中传递值的方式:
@using (Html.BeginForm("Show", "User"))
{
Html.Hidden("uid", Model.Id);
Html.Hidden("uname", Model.UserName);
<input type="submit" value="+"/>
}
html:
<form action="/User/Show" method="post"> <input type="submit" value="+"/> </form>
和:
@using(Html.BeginForm("Show", "User", FormMethod.Post, new { uid = 1, uname = "user1" }))
{
<input type="submit" value="+"/>
}
html:
<form action="/User/Show" method="post" uid="1" uname="user1"> <input type="submit" value="+"/></form>
在这两种方式中,Show 操作都会接收 null 而不是真实值。
【问题讨论】:
-
Model.Id 和 Model.UserName 值是否可能实际上为空?您可以复制粘贴表单的 HTML 源代码,如浏览器中呈现的那样吗?可能不太可能,但只是检查一下。
-
这是不可能的,因为我也尝试使用硬编码变量。
<form action="/User/Show" method="post"> <input type="submit" value="+"/></form><form action="/User/Show" method="post" uid="1" uname="user1"> <input type="submit" value="+"/> -
我很困惑。我在那里看不到任何隐藏的输入字段。另外,您能否将来源添加到问题的主体中。
-
你知道,你不能像这样在
<form>标签中添加属性,正确的方法是<input type="hidden" name="uid" value="1" />等
标签: c# asp.net-mvc-4 http-post