Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Country {
- public Int32 ID { get; set; }
- public String Name { get; set; }
- public String Iso3166 { get; set; }
- }
- [AcceptVerbs(HttpVerbs.Post)]
- public ActionResult Edit(Int32 id, FormCollection form)
- {
- using ( ModelBindingDataContext db = new ModelBindingDataContext() ) {
- Country country = db.Countries.Where(c => c.CountryID == id).SingleOrDefault();
- try {
- UpdateModel(country, form);
- db.SubmitChanges();
- return RedirectToAction("Index");
- }
- catch {
- return View(country);
- }
- }
- }
- [TestMethod]
- public void Edit()
- {
- CountryController controller = new CountryController();
- FormCollection form = new FormCollection();
- form.Add("Name", "Canada");
- form.Add("Iso3166", "CA");
- var result = controller.Edit(2 /*Canada*/, form) as RedirectToRouteResult;
- Assert.IsNotNull(result, "Expected to be redirected on successful POST.");
- Assert.AreEqual("Show", result.RouteName, "Expected to redirect to the View action.");
- }
- var routeData = new RouteData();
- var httpContext = MockRepository.GenerateStub<HttpContextBase>();
- FormCollection formParameters = new FormCollection();
- EventController controller = new EventController();
- ControllerContext controllerContext =
- MockRepository.GenerateStub<ControllerContext>( httpContext,
- routeData,
- controller );
- controller.ControllerContext = controllerContext;
- ViewResult result = controller.Create( formParameters ) as ViewResult;
- Assert.AreEqual( "Event", result.Values["controller"] );
- Assert.AreEqual( "Show", result.Values["action"] );
- Assert.AreEqual( 0, result.Values["id"] );
- protected internal bool TryUpdateModel<TModel>( ... ) where TModel : class
- {
- ....
- ModelBindingContext bindingContext =
- new ModelBindingContext( ControllerContext,
- valueProvider,
- typeof(TModel),
- prefix,
- () => model,
- ModelState,
- propertyFilter );
- ...
- }
- CountryController controller = new CountryController();
- controller.ControllerContext = new ControllerContext();
- public class CountryEdit {
- public String Name { get; set; }
- public String Iso3166 { get; set; }
- }
- public ActionResult Edit(Int32 id, CountryEdit input)
- {
- var Country = input.ToDb();
- // Continue your code
- }
Add Comment
Please, Sign In to add comment