我正在玩ASP.NET MVC 2进行学习。我可以通过我的模型查看,但花了1-2个小时后,我没有成功传递数据来查看。例如:
www.example.com/home/show/asdf我想在屏幕上显示asdf字符串。
public ActionResult Test(string ID)
{
return View(ID);
}
使用此方法我试图捕获它。然后返回视图。 在我看来,我使用<%:Html.LabelFor(m => m as string)%> 。这可能看起来很愚蠢。我认为网址上的所有字符串都映射到方法但不是整数,所以我想我必须使用问号,例如这个example.com/home/Test?asdf?我也会尝试这个。
编辑:
将url上的整数传递给方法参数会让我感到困惑。这个url中的Example / home / test/2,2将是测试方法的参数,所以我认为字符串相同。我认为我们只能传递整数而不可能与任何其他值做同样的事情。所以我认为我只能通过查询字符串捕获值,所以我怎样才能传递一个简单的字符串类型来查看?
答案 0 :(得分:3)
您无法像这样调用View功能。实际上你可以但它会查找一个名为URL的视图。它不会使用您的测试视图。您不能将字符串作为模型传递,因为它必须是一个对象。检查View方法重载。我建议你为模型创建一个类,然后将它发送到View。
我建议这样的事情。
public ActionResult Test(string id)
{
SomeModelClass model=new SomeModelClass(id);
return View(model);
}
如果你想传递一个字符串,你应该把它作为像这样的对象
public ActionResult Test(string id)
{
return View((Object)id);
}
答案 1 :(得分:1)
public ActionResult Test(string ID)
{
ViewData["ID"] = ID
return View();
}
<p>
<div class="simple">
<%= Html.Encode(ViewData["ID"]) %>
</div>
答案 2 :(得分:0)
尝试
public ActionResult Test(string ID)
{
return View("Test", ID);
}