繁体   English   中英

使用 ASP.NET MVC 获取类似 MultiView 的行为

[英]Get MultiView like behavior with ASP.NET MVC

我正在尝试使用 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 表单更难的是控制器不知道成功消息/内容应该是什么。 我见过的大多数演示都让控制器发回一条消息,但我需要在视图中使用该代码。

任何指导表示赞赏。

你可以用控制器

[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"] %>

我已经能够成功地使用这种技术。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM