Asp.net mvc asp.net MVC:使用不同的操作捕获Html.BeginForm

Asp.net mvc asp.net MVC:使用不同的操作捕获Html.BeginForm,asp.net-mvc,forms,Asp.net Mvc,Forms,我通过控制器渲染视图,如下所示: public ViewResult Forum([DefaultValue(0)]int id) { ForumMessagesViewModel forumMsgs = new ForumMessagesViewModel(_articles.GetAllForumMessages()); return View(forumMsgs); } 在这个view.aspx中,我想启用消

我通过控制器渲染视图,如下所示:

public ViewResult Forum([DefaultValue(0)]int id)
        {
            ForumMessagesViewModel forumMsgs = new ForumMessagesViewModel(_articles.GetAllForumMessages());
            return View(forumMsgs);
        }
在这个view.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>


    <%} %>
但是
“论坛”
操作(生成视图)总是捕获它

我做错了什么

谢谢,


汤姆很奇怪。查看生成的标记,查看标记中是否呈现了正确的URL

此外,请尝试以下替代方法:

<% Html.BeginForm("..", ".."); %>

<% Html.EndForm(); %>

不确定您是否已经解决了这个问题,因为这是很久以前的事了,但可能其他人也有同样的问题

我刚刚遇到了同样的问题,同样是在创建论坛时,我的quickreply操作一直被我的论坛或线程操作所采用。我所做的就是交换一些路径,把线程和论坛的路径放在一个较低的位置,这就成功了

希望有帮助

Lauw

标记是正确的(正确的操作出现在html源中的表单标题中),替代选项没有帮助:-(
<% Html.BeginForm("..", ".."); %>

<% Html.EndForm(); %>