asp.net MVC: захват Html.BeginForm с другим действием - PullRequest
1 голос
/ 17 ноября 2010

Я визуализирую вид через мой контроллер следующим образом:

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" (сгенерировавшее представление) всегда захватывает его.

Что я делаю не так?

Спасибо,

Tom

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Не уверен, что вы уже решили это, потому что это давно, но, возможно, у кого-то еще есть такая же проблема.

Я только что столкнулся с той же проблемой, также с созданием форума, мое быстрое действиепродолжал быть поднятым моим форумом или действием потока.Все, что я сделал, это поменял некоторые маршруты, поставил темы и форумы на более низкую позицию, и это помогло.

Надеюсь, это поможет,

Lauw

0 голосов
/ 17 ноября 2010

Weird.Посмотрите на сгенерированную разметку, чтобы увидеть, отображается ли правильный тег в теге .

Кроме того, попробуйте альтернативный вариант:

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

<% Html.EndForm(); %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...