【问题标题】:Razor view page with multiple partial view razor pages具有多个局部视图剃刀页面的剃刀视图页面
【发布时间】:2013-02-10 18:17:34
【问题描述】:

我对此有点陌生,我无法显示包含部分视图的页面,我希望有人查看我的结构并指出我做错了什么。

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

个人资料页面:

@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(cshtml) 只有“使用布局或母版页:”被选中,下面的框为空(如果在 Razor _viewstart 文件中设置,则留空)

当我渲染整个页面时,所有不同的部分都会显示,但用户名和传记区域应该填充数据库中的数据,而数据库中并没有这样做。只有当我将 url 更改为实际指向 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'.

任何有关如何将不同的剃刀视图页面正确显示到一个或正确结构中的帮助,请帮助我。

【问题讨论】:

  • 您似乎没有将模型传递给您的部分。
  • @DaveA 我该如何正确地做到这一点。

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


【解决方案1】:

我通常使用对控制器的 ajax 调用来获取部分视图,例如How to populate a Table in View with Json results on click of button MVC

对于您的代码,您可以在调用中将模型传递给部分

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

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

【讨论】:

    猜你喜欢
    • 2018-04-24
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多