我正在研究一个示例mvc项目,我正在尝试将数据发布到控制器。我已发布样本(见下文),但如果我将[HttpPost]添加到方法中,我会收到'404'错误。
查看:
<% using (Html.BeginForm()) { %>
<%= Html.Telerik().NumericTextBox()
.Name("NumericTextBox")
.Spinners(false)
.EmptyMessage("ID")
%>
<input type="submit" value="Submit" />
<% } %>
控制器:
[HttpPost]
public ActionResult GetDetails(int id)
{
return View();
}
**I also tried,**
[HttpPost]
public ActionResult GetDetails(FormCollection collection)
{
return View();
}
路线:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Customer", action = "GetDetails", id = UrlParameter.Optional } // Parameter defaults
);
答案 0 :(得分:2)
您希望名称与控制器上的参数匹配,所以我相信它should be like this:
Html.Telerik().NumericTextBox()
.Name("id")
注意:
id
路由参数上指定了UrlParameter.Optional,但除非您在控制器操作中将其设为可为空(即int? id
),否则它不是真正可选的。答案 1 :(得分:0)
您应该使用第二种方法,而不是FormsCollection
,请使用:
GetDetails(int NumericTextBox)
参数必须与输入框的名称相同。