我无法传递值来查看

时间:2010-07-05 10:51:31

标签: .net asp.net-mvc-2

我正在玩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将是测试方法的参数,所以我认为字符串相同。我认为我们只能传递整数而不可能与任何其他值做同样的事情。所以我认为我只能通过查询字符串捕获值,所以我怎样才能传递一个简单的字符串类型来查看?

3 个答案:

答案 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);
}