如何在不需要模型的情况下将参数发送到局部视图?

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。假设根据您的解释 someValuestring,这意味着您将在 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 对象,您只需要将其投射出去