2010-11-16 51 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

相關問題