【问题标题】:MVC Identity - split register into two viewsMVC Identity - 将寄存器拆分为两个视图
【发布时间】:2014-12-23 09:59:03
【问题描述】:

MVC 新手。我正在尝试为继承了内置身份模型 ApplicationUser 的两个独立模型(学生和导师)复制现有的 Identity Register.cshtml。我这样做是为了在应用程序中使用单独的学生和导师模型,但将它们存储在同一个地方并利用相同的身份用户和角色功能。

我修改了 AccountController.cs,使用 Register() 操作方法作为创建 RegisterStudent() 和 RegisterTutor() 操作方法的基础。唯一的区别是我将所有 ApplicationUser 引用替换为对相应模型的引用。

然后我手动复制了 Register 视图并将其重命名为 RegisterStudent 和 RegisterTutor,更改了 HtmlHelper BeginForm 引用。当我导航到这些路径时,我收到“找不到资源”。错误表明它不喜欢我的https://localhost:44301/Account/RegisterTutor 路径。

当我将 RegisterTutor.cshtml 的内容复制到 Register.cshtml 文件中时,它就像一个冠军一样工作。对我缺少的东西有什么想法吗?

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    你可以做两件事:

    1. 您可以创建从RegisterTutor.cshtmlRegisterStudent.cshtml 内部调用的公共视图(部分视图),它们分别从RegisterTutorRegisterStudent 操作中调用。
    2. 您可以直接从两者中引用相同的视图(cshtml 文件) 如下操作:

      public ActionResult RegisterTutor()
      {
          var _model = 'Model Object'
          ....
          ....
          return ("~/Account/Register.cshtml", _model)
      }
      

    同样

        public ActionResult RegisterStudent()
        {
            var _model = 'Model Object'
            ....
            ....
            return ("~/Account/Register.cshtml", _model)
        }
    

    您可以将Register.cshtml 与基本模型强绑定,如果属性相同,或者您可以创建一个接口,该接口可用于强绑定视图,然后以上两个模型都应实现它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      相关资源
      最近更新 更多