我是c#的新手所以请原谅这个愚蠢的问题。我正在使用asp.net mvc创建一个webapp。在导航栏上,我有一个按钮,可以显示包含表单的模态。现在,这一切都在_Layouts.cshtml共享视图中完成。为了捕获表单帖子,我使用了ViewsModel,然后将其传递给控制器进行处理。现在的问题是,除非我使用单独的共享视图,否则会将该模型加载到webapp中加载的每个视图中。现在这阻止我将模型从控制器传递回视图。
目前我已经创建了一个名为MasterViewModel的模型,该模型将其他视图模型作为属性,但这仍然阻止我将模型传递给视图...
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:0)
是的!你当然可以!
有许多方法,但我最喜欢2种。
1。)ViewBag
使用这个很简单,您只需将控制器中的视图包设置为Viewbag.Example = YourViewModelHere
然后通过说@Viewbag.Example.Attribute
2.。部分视图
另一个好方法是保持您的架构井井有条,每个视图只有一个视图模型。 (我更喜欢这种方法)
通过这种方式,您可以坚持将单个视图模型交付到单个页面的方式。出于某种原因,我倾向于使用这种方式,但一个不一定比另一个更好。最后,它更受青睐。
3。)Wrapper类
将视图模型包装在父类中,并将parrent类作为视图模型传递。这将允许您访问这些单独的视图模型,例如:
@Model.ViewModelA
@Model.ViewModelB
以个别为例以不同的方式查看此帖子。我穿上鞋子时帮助了我:https://stackoverflow.com/a/4765113/5874935