如何在不需要模型的情况下将参数发送到局部视图?
How can I send a parameter to partial view without the need of a model?
我在我的 MVC 应用程序中有一个部分视图,我将其加载到容器 dom 元素中。我通过首先调用控制器来完成此操作,如下所示:
$(container).load('/xxx/GetPartialView');
控制器中我return局部视图:
public PartialViewResult GetPartialView()
{
return PartialView("SomePartial", null);
}
这很好用。但是,我想将一个参数(只是一个简单的字符串值)从控制器发送到我正在创建的局部视图。据我了解,可以通过使用模型来完成,例如:
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", new SomeDummyModel(someValue));
}
但我想尽可能避免模型实例,因为它看起来开销很大。我只想将字符串值作为参数发送。这可能吗?
无需传递自定义 class,例如 SomeDummyModel
,您只需传递 someValue
。假设根据您的解释 someValue
是 string
,这意味着您将在 partialView 的 @model
中接受 string
。
控制器
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", someValue);
}
部分
@model string
<div>Hello, @Model :)</div>
您也可以使用 ViewData 对象来传递这样的简单项目。
public PartialViewResult GetPartialView()
{
ViewData["someValue"] = "hello";
return PartialView("SomePartial", null);
}
然后在视图中访问它:
<div>@ViewData["someValue"].ToString() :)</div>
无需模型即可使用。
您几乎可以将任何内容放入 ViewData 对象,您只需要将其投射出去
我在我的 MVC 应用程序中有一个部分视图,我将其加载到容器 dom 元素中。我通过首先调用控制器来完成此操作,如下所示:
$(container).load('/xxx/GetPartialView');
控制器中我return局部视图:
public PartialViewResult GetPartialView()
{
return PartialView("SomePartial", null);
}
这很好用。但是,我想将一个参数(只是一个简单的字符串值)从控制器发送到我正在创建的局部视图。据我了解,可以通过使用模型来完成,例如:
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", new SomeDummyModel(someValue));
}
但我想尽可能避免模型实例,因为它看起来开销很大。我只想将字符串值作为参数发送。这可能吗?
无需传递自定义 class,例如 SomeDummyModel
,您只需传递 someValue
。假设根据您的解释 someValue
是 string
,这意味着您将在 partialView 的 @model
中接受 string
。
控制器
public PartialViewResult GetPartialView(string someValue)
{
return PartialView("SomePartial", someValue);
}
部分
@model string
<div>Hello, @Model :)</div>
您也可以使用 ViewData 对象来传递这样的简单项目。
public PartialViewResult GetPartialView()
{
ViewData["someValue"] = "hello";
return PartialView("SomePartial", null);
}
然后在视图中访问它:
<div>@ViewData["someValue"].ToString() :)</div>
无需模型即可使用。 您几乎可以将任何内容放入 ViewData 对象,您只需要将其投射出去