我的域名设置类似于
public class Pagination
{
public int? Page { get; set; }
}
public class IndexViewModel
{
public Pagination Pagination { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index(IndexViewModel model, Pagination pg, string page)
{
return View(model);
}
}
当我导航到/?Page=5
时,我希望5是model.Pagination.Page的值也是5,但是看起来MVC不会超过1层深度的查询参数。
我该怎么做才能改变这个?
或者更改此设置比它的价值更麻烦?我应该做
public class HomeController : Controller
{
public ActionResult Index(IndexViewModel model, Pagination pg, string page)
{
model.Pagination = pg;
return View(model);
}
}
*请注意,三重参数用于说明它不会填充IndexViewModel,但它会填充其他两个参数,因为它们的深度为0或1层。
答案 0 :(得分:0)
你的方法签名不应该......
public ActionResult Index(int? page)
{
var model = new IndexViewModel{
Pagination = new Pagination { Page = page ?? 1 } };
if(page.HasValue)
model.Stuff = StuffGenerator
.GetStuff()
.Skip(page.Value * _pageSize)
.Take(_pageSize);
else
model.Stuff = StuffGenerator.GetStuff().take(_pageSize);
return View(model);
}
你的例子听起来像一个GET,但看起来像一个POST。