【发布时间】:2013-02-21 02:07:03
【问题描述】:
我知道如果我有类似/controller/action/{id} 的东西,我可以将 id 作为函数参数访问。但是如何在不使用 viewbag 的情况下通过视图访问它呢?
【问题讨论】:
标签: asp.net-mvc-3 asp.net-mvc-viewmodel
我知道如果我有类似/controller/action/{id} 的东西,我可以将 id 作为函数参数访问。但是如何在不使用 viewbag 的情况下通过视图访问它呢?
【问题讨论】:
标签: asp.net-mvc-3 asp.net-mvc-viewmodel
您可以将该函数参数作为模型的一部分传递给视图。该模型可以是静态或动态类型的。下面的示例代码演示了如何将值作为属性传递给动态模型。
public ActionResult Edit(string id)
{
dynamic model = new System.Dynamic.ExpandoObject();
model.Id = id;
return View(model);
}
您可以按如下方式在视图中访问该值:
@Model.Id
【讨论】:
您可以在视图中解析 URL 以获取 ID:
var id = Request.Url.LocalPath.SubString(LastIndexOf("/",Request.Url.LocalPath)+1);
【讨论】:
/id?ping=pong。 int.parse 会爆炸。 ATM 我不记得用什么来获取带有 uri 的路径(没有查询)。
Request.Url.LocalPath.Substring(Request.Url.LocalPath.LastIndexOf("/")+1)
RenderBody("form.cshtml", "My random sz")
它将直接放入ViewBag.id,或者您可以通过ViewData["id"] 访问它。嘿,好像是同一个对象
【讨论】: