我在我的MVC应用程序中有一个局部视图,我将其加载到容器dom元素中。我这样做是先调用控制器,如下所示:
$(container).load('/xxx/GetPartialView');
在控制器中,我返回局部视图:
public PartialViewResult GetPartialView()
{
return PartialView("SomePartial", null);
}
这很好用。但是,我想从控制器向我正在创建的局部视图发送一个参数(只是一个简单的字符串值)。据我所知,可以通过使用模型来完成,例如:
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", new SomeDummyModel(someValue));
}
但是如果可能的话我想避免使用模型实例,因为这似乎是很多开销。我想只是将字符串值作为参数发送。这可能吗?
答案 0 :(得分:5)
您可以简单地传递SomeDummyModel
,而不是传递someValue
等自定义类。假设您的解释someValue
为string
,则表示您接受部分视图的string
中的@model
。
控制器
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", someValue);
}
部分
@model string
<div>Hello, @Model :)</div>
答案 1 :(得分:1)
您还可以使用ViewData对象传递类似的简单项目。
public PartialViewResult GetPartialView()
{
ViewData["someValue"] = "hello";
return PartialView("SomePartial", null);
}
然后在视图中访问它:
<div>@ViewData["someValue"].ToString() :)</div>
这没有模型。 您可以将任何内容放入ViewData对象中,只需将其抛出
即可