我正在与剃刀MVC3第一次,我有一个局部视图,在许多其他地方使用,并没有模型。现在我需要它,我可以创建一个可选模型吗?如果它通过了,那么我会使用它,否则我会离开默认行为。剃刀 - 我可以制作视图的可选模型吗?
[更新]
我想调用它是这样的:
@Html.Partial("_myPartialView")
或该:
@Html.Partial("_myPartialView", "Some string")
(局部视图模型是一个字符串)
这可能吗?
我正在与剃刀MVC3第一次,我有一个局部视图,在许多其他地方使用,并没有模型。现在我需要它,我可以创建一个可选模型吗?如果它通过了,那么我会使用它,否则我会离开默认行为。剃刀 - 我可以制作视图的可选模型吗?
[更新]
我想调用它是这样的:
@Html.Partial("_myPartialView")
或该:
@Html.Partial("_myPartialView", "Some string")
(局部视图模型是一个字符串)
这可能吗?
@model FooBar
@if (Model != null)
{
<div>@Model.SomeProperty</div>
}
else
{
<div>No model passed</div>
}
UPDATE:
显示您所呼叫的部分的方式后,这里是你能做什么:
@Html.Partial("_myPartialView", null, new ViewDataDictionary())
@Html.Partial("_myPartialView", "Some string")
可以在@Html.Partial("_myPartialView", null)
传递null然后您按照Darin的建议在视图中验证模型。
但最好的解决方案,即imo,将传递一个ViewModel对象到您的视图包含您需要的字符串属性。您将其设置为可扩展,并且不传入null,则传递一个具有空或空字符串的新ViewModel对象。
我试过了,但如果我用第二个参数调用为null,那么局部就采用父类的模型。我需要第三个参数,或者,在这种情况下,一个string.empty。 – kerzek 2012-04-02 08:15:46
当没有模型通过我得到这个错误,即: '@ Html.Partial(“_ myPartialView”)' 传递到字典_The模型产品类型“ModelOfTheContainerView”,但这需要字典一个'PartialViewModel'类型的模型项目._ – kerzek 2012-04-02 07:39:06
@kerzek,我已经更新了我的答案,以向您展示如何在不发生此异常的情况下使用空模型调用partial。您需要使用第三个参数和帮助器,并传递一个新的ViewDataDictionary以避免将父模型传递给部分。 – 2012-04-02 08:07:23
谢谢。你是对的,如果我用两个参数调用它,然后采取父母的模型。我想我没有选择,我会用string.empty编辑所有的调用。 – kerzek 2012-04-02 08:16:59