如何在没有模型的情况下向部分视图传递参数?

3
我在我的MVC应用程序中有一个partial view,我将其加载到容器dom元素中。为此,我首先调用控制器,如下所示:
$(container).load('/xxx/GetPartialView');

在控制器中,我返回局部视图:
public PartialViewResult GetPartialView()
{
   return PartialView("SomePartial", null);
}

这个工作完全正常。但是,我想从控制器向我创建的局部视图发送一个参数(只是一个简单的字符串值)。我了解到,可以通过使用模型来完成这一点,例如:

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

但如果可能的话,我想避免使用模型实例,因为它看起来很繁琐。我只想将字符串值作为参数发送。这是否可行?

2个回答

5

不需要传递自定义类,例如 SomeDummyModel,只需传递 someValue。假设 someValue 是你解释中的 string,那么在 partialView 的 @model 中就应该接受 string

控制器

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

部分

@model string
<div>Hello, @Model :)</div>

1
你可以使用ViewData对象传递这样的简单项目。
    public PartialViewResult GetPartialView()
    {
          ViewData["someValue"] = "hello";
          return PartialView("SomePartial", null);
    }

然后在视图中访问它:

<div>@ViewData["someValue"].ToString() :)</div>

这个不需要模型就可以运行。 你几乎可以将任何东西放入ViewData对象中,只需要将其强制转换出来即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接