我应该总是初始化视图模型对象吗?

阿列克谢·潘克拉托夫(Alexei Pancratov)

我正在读一本有关ASP.NET MVC 4的书,我有一个小问题。这是视图模型

public class SignupViewModel
{
    public string Username { get; set; }
    public string Password { get; set; }
    public string Password2 { get; set; }
    public string Email { get; set; }
}

该书的作者建议创建这种类型的对象以从控制器调用视图。

    public ActionResult Index()
    {
        if (!Security.IsAuthneticated)
        {
            return View("SignupPge", new SignupViewModel());
        }

    }

视图本身是强类型的

    @model SignupViewModel
    <p>
        @using (var signupForm = Html.BeginForm("Signup", "Account"))
        {
            @Html.TextBoxFor(m => m.Email, new { placeholder = "Email" })
            @Html.TextBoxFor(m => m.Username, new { placeholder = "Username" })
            @Html.PasswordFor(m => m.Password, new { placeholder = "Password" })
            @Html.PasswordFor(m => m.Password2, new { placeholder = "Confirm Password" })

            <input type="submit" value="Create Account" />
        }
    </p>
}

我只是想知道在调用视图时创建视图模型的对象真的必要吗?实际上,我尝试将null作为模型对象传递,并且一切正常。我想MVC框架已经创建了模型对象本身。如果可以,那么是否认为这是一个好习惯?

土清

防御性编码的观点,当你实现一个接收参数的函数,你的函数不应该假设参数总是有效null的东西无效的例子)。

在我看来,Asp.net mvc遵循这些最佳实践,并在您null作为视图模型传递时尝试避免出现异常

我只是想知道在调用视图时创建视图模型的对象真的必要吗?

我认为当您有自定义逻辑来初始化对象并且需要将该对象传递给视图时,这是必要的。在我看来,我们应该始终传递所需的对象,这在代码中更加清楚,并且避免依赖该方法中的防御性逻辑。方法中的防御逻辑是保护方法免受无效参数的侵害,有时无法按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该总是初始化视图模型对象吗?

来自分类Dev

初始化总是应该使用相同的内存块吗?

来自分类Dev

EF codefirst:我应该初始化导航属性吗?

来自分类Dev

模型对象初始化

来自分类Dev

初始化模型对象

来自分类Dev

总是用{}初始化对象是个好习惯吗?

来自分类Dev

我应该声明JavaScript变量,然后立即初始化吗?

来自分类Dev

我应该能够将Spring占位符用于Flyway bean的初始化方法吗?

来自分类Dev

在Mac OS X上应该初始化我的Git存储库的首选路径吗?

来自分类Dev

我应该使用useRef来存储一次性初始化数据吗?

来自分类Dev

我应该通过子类化应用程序在 onCreate 中初始化单例吗?

来自分类Dev

为什么我的基因剔除视图模型用不同的值初始化?

来自分类Dev

C ++包含关系-总是需要初始化列表吗?

来自分类Dev

我是否应该得到此错误:可变大小的对象可能未初始化?

来自分类Dev

我应该使用字符串或属性名称来初始化对象还是重要?

来自分类Dev

我需要初始化位吗?

来自分类Dev

我可以从 uiview 的初始化中创建约束到它的超视图吗

来自分类Dev

我可以调用虚拟函数来初始化基类子对象吗?

来自分类Dev

我可以在类中初始化一个对象吗?

来自分类Dev

我应该使用{}还是{0}初始化数组/结构?

来自分类Dev

我如何/应该初始化并正确使用`struct`?

来自分类Dev

我应该如何解释这个int初始化?

来自分类Dev

我应该如何初始化SKMapInitSettings的路径?

来自分类Dev

我应该如何解释这个int初始化?

来自分类Dev

我如何/应该初始化并正确使用`struct`?

来自分类Dev

我应该初始化一个cv :: Mat

来自分类Dev

对象初始化

来自分类Dev

Python Appengine使用JSON初始化NDB模型对象

来自分类Dev

页面对象模型页面初始化

Related 相关文章

  1. 1

    我应该总是初始化视图模型对象吗?

  2. 2

    初始化总是应该使用相同的内存块吗?

  3. 3

    EF codefirst:我应该初始化导航属性吗?

  4. 4

    模型对象初始化

  5. 5

    初始化模型对象

  6. 6

    总是用{}初始化对象是个好习惯吗?

  7. 7

    我应该声明JavaScript变量,然后立即初始化吗?

  8. 8

    我应该能够将Spring占位符用于Flyway bean的初始化方法吗?

  9. 9

    在Mac OS X上应该初始化我的Git存储库的首选路径吗?

  10. 10

    我应该使用useRef来存储一次性初始化数据吗?

  11. 11

    我应该通过子类化应用程序在 onCreate 中初始化单例吗?

  12. 12

    为什么我的基因剔除视图模型用不同的值初始化?

  13. 13

    C ++包含关系-总是需要初始化列表吗?

  14. 14

    我是否应该得到此错误:可变大小的对象可能未初始化?

  15. 15

    我应该使用字符串或属性名称来初始化对象还是重要?

  16. 16

    我需要初始化位吗?

  17. 17

    我可以从 uiview 的初始化中创建约束到它的超视图吗

  18. 18

    我可以调用虚拟函数来初始化基类子对象吗?

  19. 19

    我可以在类中初始化一个对象吗?

  20. 20

    我应该使用{}还是{0}初始化数组/结构?

  21. 21

    我如何/应该初始化并正确使用`struct`?

  22. 22

    我应该如何解释这个int初始化?

  23. 23

    我应该如何初始化SKMapInitSettings的路径?

  24. 24

    我应该如何解释这个int初始化?

  25. 25

    我如何/应该初始化并正确使用`struct`?

  26. 26

    我应该初始化一个cv :: Mat

  27. 27

    对象初始化

  28. 28

    Python Appengine使用JSON初始化NDB模型对象

  29. 29

    页面对象模型页面初始化

热门标签

归档