我有一个来自我正在进行的项目的示例,其中特定模型从控制器传递到视图,如下所示:
result = View(stu) //stu is an object of type Student
//
//
return result;
在该特定视图中,在顶部我有@model Project.Models.Student
并且我有文本框,它们将输入的信息绑定到模型。但是,在另一个控制器中,我有另一种方法,它具有以下代码:
//
//
result = View();
//
并且它的视图有@model.Project.Models.Login
,但我仍然可以从这个视图中将事物绑定到模型,就像在另一个视图中一样(例如,我有类似的东西:
@Html.TextBoxFor(model => model.login_name, new { maxlength = "30" })
我没有像第一种方法那样将模型传递给视图,但它似乎具有相同的功能。如果我在视图顶部使用@model
,这是否意味着没有必要从控制器方法中明确地将模型对象作为参数传递?
答案 0 :(得分:0)
如果您在cshtml页面的顶部声明@model,那么您的页面希望获得您声明的类型的模型。当然,您可以选择不在页面中使用模型,在这种情况下,您的声明是无用的。 此外,您可以声明模型,但不要将任何对象发送到视图。 如果发送对象,则它必须与您在@model中声明的类型相同。