如何在不强制转换为对象的情况下将字符串参数传递给 ASP.NET 视图

本文关键字:字符串 情况下 参数传递 视图 NET ASP 对象 转换 | 更新日期: 2023-09-27 18:33:07

ASP.NET 允许我传入视图的名称(作为字符串),但在大多数情况下,我想将字符串作为参数传递。我所做的是将字符串强制转换为object然后将其传递给视图。

[ChildActionOnly]
public ActionResult MyView(string model)
{
    return View((object)model);
}

有没有办法我不需要投掷它?对我来说看起来很丑。

如何在不强制转换为对象的情况下将字符串参数传递给 ASP.NET 视图

你可以这样做,但我不确定它是否更好:

return View(null, null, model);

或者你可以这样做:

return View("MyView", null, model);

注意:使用带有两个参数的重载是行不通的,因为它将选择布局重载而不是模型版本。

另一种选择是简单地使用字符串数组,这不会占用更多开销。

public ActionResult MyView(string[] model)
{
   return View(model);
}

但是,事实是,您实际上是在强制转换为对象,即使您没有为其他类型的对象指定它......这只是隐含的。

使用演员表只是露骨,这真的没有错。

这是

MVC惯例。 通常,传递给视图的任何字符串都被视为要呈现的视图名称。 传递字符串的唯一方法是像您所做的那样将其强制转换为对象。

如果您不喜欢这样,除了视图名称之外,还可以始终传递它。

public ActionResult MyView(string model)
{
    return View("MyView", null, model);
}
相关文章: