【发布时间】:2016-08-14 15:25:28
【问题描述】:
这里是 EverythingController 中动作方法 MovieCustomer 的粘贴。 Viewmodel 用于组合两个模型:Customer 和 Movies,并通过 ApplicationDbContext (_context) 填充来自数据库的信息。
当存在 MovieId 和 CustomerId 的值时,路由成功并呈现页面
例如/一切/MovieCustomer/1/1
如果其中一个或两个值为空,我希望页面也能加载。到目前为止,两个 int 参数都可以为空,并且如果其中一个为空,则方法中有一个 if 语句将参数更改为 1。 到目前为止,如果值为 null,浏览器将返回 404 错误。
当一个或一个参数为空时,如何使页面正常运行?谢谢
[Route("Everything/MovieCustomer/{movieId}/{customerId}")]
public ActionResult MovieCustomer(int? movieId, int? customerId)
{
var viewmodel = new ComboViewModel
{
_Customers = new List<Customer>(),
_Movies = new List<Movies>(),
_customer = new Customer(),
_movie = new Movies()
};
viewmodel._Customers = _context.Customers.ToList();
viewmodel._Movies = _context.Movies.ToList();
if (!movieId.HasValue)
movieId = 1;
if (!customerId.HasValue)
customerId = 1;
viewmodel._customer = viewmodel._Customers.SingleOrDefault(a => a.Id == customerId);
viewmodel._movie = viewmodel._Movies.SingleOrDefault(a => a.Id == movieId);
return View(viewmodel);
}
【问题讨论】:
-
stackoverflow.com/questions/50248828/…(请参阅答案的 cmets)。
标签: c# asp.net asp.net-mvc