【问题标题】:AccountModel in one screenAccountModel 一屏显示
【发布时间】:2011-09-20 05:09:42
【问题描述】:

我有这个带有 MVC3 附带的基本 AccountModel 的应用程序。 AccountModel 具有三个类:

  • 更改密码模型;
  • 登录模型;
  • 注册模型;

我想创建一个帐户/设置屏幕,因此我在帐户控制器上创建了设置操作。

但我不知道下一步该做什么,因为此屏幕将包含所有帐户功能,例如更改密码、更改站点设置和个人资料,而且 ChangePasswordModel 是一个单独的模型!

如何在此 /Account/Settings 中发布 ChangePassword 表单并仍然让 ChangePassword 操作正常工作?

如何把这个统一到一屏?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-membership


    【解决方案1】:

    如果你将每组功能包装在一个新的形式中,那么你就可以完成你想要的......你可以使用

    <% using(Html.BeginRouteForm(...) %>
    

    非常清楚地指定页面的每个部分的位置...我建议您将每个部分发送到不同的操作(即使它们在同一个控制器中),以使您的模型绑定更简单。

    如果您在一种形式中有 var A 但想以不同的形式检索它,这可能会变得很丑。

    只要您想将所有内容都放在同一个屏幕上,每个表单都可以成功地干净地代表自己的模型,那么这是一种相当不错的方法(IMO)

    编辑

    如果您习惯了 ASP.net 并且 MVC 对您来说有点新,将多个表单放在同一个页面上是违反 ASP.net 特性的,但是在 mvc 中(如前所述)您可以非常有效地做到这一点。

    编辑链接

    http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginrouteform.aspx

    http://msmvps.com/blogs/luisabreu/archive/2009/01/31/the-mvc-platform-more-form-extension-methods.aspx

    【讨论】:

    • 有趣。所以我只需要在模型中有一个具有相同名称的表单,动作接收和thigs 就可以工作吗?顺便问一下,我可以在这个屏幕中绑定多个模型来恢复验证错误吗?
    • 是的,完全正确...您(和我很长一段时间)可能只是习惯了每页一个表单的 ASP.NET 样式...我正在添加一些 BeginRouteForm 链接到我的post... 看看最后的编辑...
    • 另外请注意,我一直在使用 BeginRouteForm,因为我通常非常喜欢使用 Route Mapping... 请注意,Html.BeginForm 将有效地获得相同的预期结果!
    • 不,先生,我不像你。我还只是学徒。还在学习中,大师。
    • 我学得越多,我就越意识到我仍然是一个徒弟:)
    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 2021-12-15
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多