如何在不强制转换为对象的情况下将字符串参数传递给 ASP.NET 视图
本文关键字:字符串 情况下 参数传递 视图 NET ASP 对象 转换 | 更新日期: 2023-09-27 18:33:07
ASP.NET 允许我传入视图的名称(作为字符串),但在大多数情况下,我想将字符串作为参数传递。我所做的是将字符串强制转换为object
然后将其传递给视图。
[ChildActionOnly]
public ActionResult MyView(string model)
{
return View((object)model);
}
有没有办法我不需要投掷它?对我来说看起来很丑。
你可以这样做,但我不确定它是否更好:
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);
}