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

时间:2015-01-27 22:36:15

标签: asp.net-mvc

我在我的MVC应用程序中有一个局部视图,我将其加载到容器dom元素中。我这样做是先调用控制器,如下所示:

$(container).load('/xxx/GetPartialView');

在控制器中,我返回局部视图:

public PartialViewResult GetPartialView()
{
   return PartialView("SomePartial", null);
}

这很好用。但是,我想从控制器向我正在创建的局部视图发送一个参数(只是一个简单的字符串值)。据我所知,可以通过使用模型来完成,例如:

public PartialViewResult GetPartialView(string someValue)
{
   return PartialView("SomePartial", new SomeDummyModel(someValue));
}

但是如果可能的话我想避免使用模型实例,因为这似乎是很多开销。我想只是将字符串值作为参数发送。这可能吗?

2 个答案:

答案 0 :(得分:5)

您可以简单地传递SomeDummyModel,而不是传递someValue等自定义类。假设您的解释someValuestring,则表示您接受部分视图的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对象中,只需将其抛出

即可