我正在进行我的第一个MVC项目,但仍然没有完全掌握它。我遇到了这个问题:
我在我的视图中有这个(Home / Index.aspx)
<% using (Html.BeginForm()) { %>
<fieldset>
<p>
<%: Html.TextBox("A")%>
<%: Html.TextBox("B") %>
<%: Html.ActionLink("Submit", "Create", "Home")%>
</p>
</fieldset>
<% } %>
我在我的Controller(Controllers / HomeController.cs)
中有这个[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection formValues)
{
return View("Index");
}
我没有更改global.asx中的默认路由
当我点击提交时,我收到“资源无法找到错误”。但是,如果我将ActionLink更改为
<input type="submit" value="Save" />
和控制器中的方法:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection formValues)
{
return View("Index");
}
它工作正常。
我有点困惑,因为如果我在ActionLink中指定了确切的操作方法名称和控制器(&lt;%:Html.ActionLink(“提交”,“创建”,“主页”)%&gt; ),为什么我将此方法命名为Create或Index?
答案 0 :(得分:2)
您有[AcceptVerbs(HttpVerbs.Post)]
将其限制为HTTP POST请求。由于动作链接是GET,因此它不使用您的方法。大概你有两个索引方法,其中一个没有该属性并接受GET请求。