将隐式类型对象转换为查询字符串

Ext*_*kun 5 asp.net asp.net-4.0 asp.net-mvc-3

在ASP.NET MVC3中,某些函数(如HtmlHelper.ActionLink)可以接受隐式类型的对象并将其转换为查询字符串

@Html.ActionLink("Link", "Action", new { id = 1, params="asd"})
Run Code Online (Sandbox Code Playgroud)

会产生一个像url的网址 http://www.localhost.com/controller/Action?id=1&params=asd

是否有内置方法将对象的属性转换为查询字符串格式?

Dar*_*rov 3

假设您有一个视图模型:

public class MyViewModel
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和一个控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            Prop1 = "foo",
            Prop2 = "bar"
        };
        return View(model);
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在您的视图中使用以下重载

@model MyViewModel
@Html.ActionLink("Link", "Action", new RouteValueDictionary(Model))
Run Code Online (Sandbox Code Playgroud)

在你看来。