1
66
如果你有这个问题,看起来你的视图模型有点错误。 就我个人而言,我从来不打版面。但是,如果您想这样做,您应该有一个基本的viewmodel,您的其他viewmodel继承自该基本viewmodel,并将您的布局键入到该基本viewmodel,然后您将页面分页到特定的一次。 |
2
75
例子: 控制器:
布局页顶部示例
我喜欢这种方法,因为它是控制布局的控制器,而单独的页面视图模型仍然与布局无关。
在第一次调用每个操作时,Mvc Core似乎会清除ViewData/ViewBag的内容。这意味着在构造函数中分配ViewData不起作用。但是,使用
IActionFilter
做同样的工作
OnActionExecuting
MyActionFilter
MyController
.
|
3
26
这是非常基本的东西,你需要做的就是创建一个基本视图模型,并确保所有!我是认真的!将使用该布局的视图将接收使用该基础模型的视图!
在@Layout.cshtml中:
在主控制器中的索引(例如)方法中:
我不同意将模型传递到布局是一个错误,可以传递一些用户信息,并且可以在控制器继承链中填充数据,因此只需要一个实现。
但对于基本用户来说,这将起到关键作用 |
4
19
一个常见的解决方案是创建一个基本视图模型,该模型包含布局文件中使用的属性,然后从基本模型继承到各个页面上使用的模型。 这种方法的问题是,您现在已经将自己锁定在模型只能从另一个类继承的问题中,并且您的解决方案可能是这样的,您无论如何都不能在您想要的模型上使用继承。
然后我使用的是从LayoutModel继承的LayoutModel的通用版本,如下所示:
有了这个解决方案,我就不再需要在布局模型和模型之间进行继承。 现在我可以继续使用Layout.cshtml中的LayoutModel,如下所示:
在页面上,您可以使用如下通用布局模型:
|
5
11
为什么不添加一个新的部分视图,让我自己的特定控制器将所需的模型传递给部分视图,最后使用Render Partial或RenderAction在Layout.cshtml上呈现所提到的部分视图?
|
6
3
旧问题,但仅提及MVC5开发人员的解决方案,您可以使用
这个
|
7
1
然后在视野中
在.net core中,您甚至可以跳过它并使用依赖注入。
这是一个有点阴暗的地方。但鉴于我在这里看到的极其复杂的替代方案,我认为这不仅仅是一个可以以实用性的名义提出的例外。尤其是如果你确保它保持简单,并确保任何繁重的逻辑(我认为确实不应该有任何逻辑,但需求不同)都在它所属的另一个类/层中。这当然比仅仅为了一个视图而污染所有控制器或模型要好。。 |
8
0
1) 将要显示的对象放在ViewBag中。例如:
2) 在包含对象类定义的_Layout.cshtml顶部添加using语句。例如: @使用你的应用程序;
|
9
-3
在布局中使用IContainsMyModel。 解决了的。接口规则。 |
10
-6
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |