Получите MultiView как поведение с ASP.NET MVC - PullRequest
1 голос
/ 28 октября 2008

Я пытаюсь построить общую систему отправки форм с использованием ASP.NET MVC. Я хотел бы максимально упростить создание форм с представлением формы и представлением «успех». Используя метод WebForms, это было легко и могло быть достигнуто с помощью шаблонов или многовидовых представлений. С MVC я немного застрял.

Вот что я хотел бы подражать:

<% if (formNotSubmitted) { %>
    <% Html.BeginForm(...); %>
        <%= Html.TextBox("FirstName") %>
        <%= Html.TextBox("LastName") %>
        <input id='submit' type='submit' value='Submit' />
        <%= Html.ValidationSummary %>
    <% Html.EndForm(); %>
<% } else { %>
    <p>Thank you!</p>
    <p><img src='thanks.jpg' /></p>
    <p>Other items here maybe.</p>
<% } %>

В идеале, я хотел бы использовать Ajax, но он также должен работать с прямым POST. Я также хотел бы обернуть это как-то, чтобы избежать кода "if..else". Что делает это сложнее, чем типичная форма ASP.NET MVC Ajax, так это то, что контроллер не будет знать, каким должно быть сообщение / контент об успехе. В большинстве демонстраций, которые я видел, контроллер отправляет обратно сообщение, но мне нужен этот код в представлении.

Любое руководство приветствуется.

1 Ответ

2 голосов
/ 28 октября 2008

Вы могли бы это с Контроллером

[AcceptVerbs("GET")]
public ActionResult Signup( )
{
    // somecode that builds an html string
        ViewData["form"] = htmlStringYouBuilt;
}

[AcceptVerbs("POST")]
public ActionResult Login( string username, string password )
{
     // etc
}

then in the view
<%= ViewData["form"] %>

Я смог успешно использовать эту технику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...