我通过我的控制器渲染视图,如下所示:
public ViewResult Forum([DefaultValue(0)]int id)
{
ForumMessagesViewModel forumMsgs = new ForumMessagesViewModel(_articles.GetAllForumMessages());
return View(forumMsgs);
}
在该视图中.aspx,我想启用邮件发布。所以我创建了以下表单:
<% using (Html.BeginForm("AddForumMessage", "Home"))
{ %>
<fieldset>
<legend>add message</legend>
<label id="NameLabel">name:</label>
<%= Html.TextBoxFor(model => model.newMessage.MessagePosterName) %>
<label id="TitleLabel">subject:</label>
<%= Html.TextBoxFor(model => model.newMessage.MessageSubject)%>
<label id="ContentTextLabel">contents:</label>
<%= Html.TextBoxFor(model => model.newMessage.MessageContents)%>
<%= Html.HiddenFor(model => model.parentMessageID, 0) %>
<div>
<input type="submit" value="submit"/>
</div>
</fieldset>
<%} %>
这个想法是用这个Action(在家庭控制器中)捕获上面的表格:
[HttpPost]
public ActionResult AddForumMessage(ForumMessagesViewModel newMessage)
{
/* Add new forum message to DB */
return Forum(0);
}
但是"Forum"
操作(生成视图)总是会捕获它。
我做错了什么?
谢谢,
汤姆
答案 0 :(得分:0)
怪异。查看生成的标记,以查看是否在&lt; form&gt;中呈现了正确的URL。标签
另外,尝试替代方案:
<% Html.BeginForm("..", ".."); %>
<% Html.EndForm(); %>
答案 1 :(得分:0)
不确定你是否已经解决了这个问题,因为很久以前,但也许其他人有同样的问题。
我遇到了同样的问题,同时创建了一个论坛,我的快速行动一直被我的论坛或线程动作所吸引。我所做的只是在一些路线上交换,将线程和论坛的路线放在较低的位置,这就行了。
希望有所帮助,
Lauw