我不知道如何實現這一點,我在控制器文件夾MovieController.cs,並在模型文件夾中的MovieCreateViewModel.cs。我需要爲創建,編輯和刪除視圖添加驗證。如何使用一個單獨的模型類驗證在MVC
MovieDetailsViewModel.cs
public class MovieDetailsViewModel
{
public int Id { get; set; }
}
然後我有我做的參數列表 我在哪裏,從這裏去請類型MovieDetailsViewModel id
的httpPost MovieController.cs
public class MovieController : Controller
{
Connect connection;
MovieCreateViewModel movie;
MovieDetailsViewModel id;
public MovieController()
{
this.connection = new Connect();
this.movie = new MovieCreateViewModel();
this.id = new MovieDetailsViewMode();
}
public ActionResult Edit(MovieDetailsViewModel id)
{
movie = this.connection.MovieContext.Where(m => m.ID == id).SingleOrDefault(); **//I get an error here**
return View(movie);
}
//
// POST: /Movie/Edit/5
[HttpPost]
public ActionResult Edit(MovieCreateViewModel movieedit)
{
try
{
if (ModelState.IsValid)
{
this.connection.MovieContext.AddObject(movieedit);
this.connection.MovieContext.Context.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
return View(movieedit);
}
}
?
感謝
你去通過MVC教程HTTP://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs /添加驗證模型 – 2012-07-13 08:11:25
請參閱上面的代碼我用編輯的驗證替換它看到這是我得到與lambda表達式的錯誤。謝謝 – 2012-07-13 08:24:54
首先,在您的編輯(GET)方法中,我可以看到您將視圖模型指定爲參數本身而不是int。這是一個錯字嗎?如果不是,請注意,您不必指定整個Viewmodel,它可以只是公共的ActionResult Edit(int id)。放一個斷點,看看你作爲id得到什麼。而且你不必過濾哪裏,然後通過單或默認過濾。的SingleOrDefault將做的工作.. – 2012-07-13 08:32:40