ここには、EverythingController内のMovieCustomerアクションメソッドが貼り付けられています。 ViewModelは、2つのモデル:顧客&ムービーを結合するために使用され、ApplicationDbContext(_context)を介してデータベースからの情報が取り込まれます。ASP.NET MVCアトリビュートヌル値を使用したルーティング
のRouteingが正常に動作し、MOVIEIDとCustomerIdのための値
たとえばがある場合、ページをレンダリング/ Everything/MovieCustomer/1/1
いずれかの値または両方の値がnullの場合も、ページをロードします。これまでのところ、両方のintパラメーターはNULL可能であり、いずれかがNULLの場合はパラメーターを1に変更するifステートメントがメソッドにあります。 値がnullの場合、ブラウザは404エラーを返します。
いずれかのパラメータがnullの場合、ページを機能させるにはどうすればよいですか?ありがとう
[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);
}
優秀、ありがとうございます。 – Aarondv1