具有多个局部视图剃刀页面的剃刀视图页面

时间:2013-02-10 18:17:35

标签: asp.net razor asp.net-mvc-4 viewmodel asp.net-mvc-viewmodel

我对此有些陌生,我在显示包含部分视图的页面时遇到问题,我希望有人查看我的结构,并指出我做错了什么。

这是我的主页,我将在其中显示其他剃刀页面内容。

简介页:

@model Project.Models.PasswordModel
@{ ViewBag.Title = "Profile Page"}

//right column
@if(ViewBag.HasLocalPassword)

{ @Html.Partial("passwordChange") }

else { @Html.Partial("passwordSet")}

//left column

@Html.Partial("username")
@Html.Partial ("biography")

当我创建用户名和传记razor视图页面时,这就是我在“添加视图”框中的内容:

查看引擎:Razor(cshtml) 仅检查了“使用布局或母版页:”并且下方的框保留为空(如果在Razor _viewstart文件中设置,则保留为空)

当我渲染整个页面时,会显示所有不同的部分,但是用户名和传记区域应该填充数据库中没有这样做的数据。只有当我更改网址实际指向username页面时,才会显示数据库中的正确信息。

当我在输入新密码信息后点击更改密码按钮时,我收到以下错误消息:

The model item passed into the dictionary is of type 'Project.Models.PasswordModel', but this dictionary requires a model item of type 'Project.Models.UserNameModel'.

如何帮助我正确显示不同的剃刀视图页面,请帮助我。

1 个答案:

答案 0 :(得分:0)

我通常使用对控制器的ajax调用来获取像How to populate a Table in View with Json results on click of button MVC

这样的部分视图

对于您的代码,您可以将模型传递给通话中的部分

@Html.Partial("_passwordSet", Model.passwordSet)

如果您有视图模型,则可以将视图模型的一部分传递给局部模型,或者可以传递完整模型。无论什么效果最好。