2010-11-16 23 views
1

捕获Html.BeginForm我渲染视图通过我的控制器,就像这样:asp.net MVC:用不同的动作

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> 


    <%} %> 

的想法是捕捉上述形式与此动作(在家里控制器):

[HttpPost] 
public ActionResult AddForumMessage(ForumMessagesViewModel newMessage) 
{ 
    /* Add new forum message to DB */ 


    return Forum(0); 

} 

"Forum"行动(这产生的视图)总是取而代之。

我在做什么错?

谢谢

汤姆

回答

0

奇怪。查看生成的标记,看看是否在<窗体>标记中呈现了正确的URL。

此外,尝试另类:

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

<% Html.EndForm(); %> 
+0

标记是否正确(正确的动作出现在HTML源代码形式头),并替代没有帮助:-( – 2010-11-16 21:39:57

0

不知道你已经解决了这个,因为它是很久以前了,但也许别人有同样的问题。

我刚刚遇到了同样的问题,还创建了论坛,我的快速回复操作不断被我的论坛或线程操作拾取。我所做的只是交换一些路线,把线程和论坛的路线放到较低的位置,这就实现了。

希望帮助,

Lauw

相关问题