I'm having a strange issue with RedirectToAction in MVC 3.0.
Here is the code of my sample ViewModel
public class EventViewModel
{
[Required(ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "Required")]
public DateTime CreationDate { get; set; }
[Required(ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "Required")]
[AllowHtml] //here is my apparent problem
public string Description { get; set; }
[Required(ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "Required")]
[Range(0, 5, ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "RangeValue")]
public int Rating { get; set; }
[Required(ErrorMessageResourceType = typeof(Resources.Validations), ErrorMessageResourceName = "Required")]
public string Title{ get; set; }
...other properties...
}
Here is the two methods of my controller
public ActionResult Edit(int id)
{
var entity = eventsRepository.Get(id);
if (entity == null)
return RedirectToAction("Index");
var eventVM = new EventViewModel();
eventVM.Description = entity.Description;
... set the other properties ...
return View(eventVM);
}
[HttpPost]
public ActionResult Edit(int id, EventViewModel model)
{
if (ModelState.IsValid)
{
try
{
var entity = eventsRepository.Get(id);
if (entity == null)
return RedirectToAction("Index");
entity.CreationDate = model.CreationDate;
entity.Description = model.Description;
... set the other properties ...
eventsRepository.Save(entity);
return RedirectToAction("Index");
}
catch (Exception e)
{
ModelState.AddModelError("", "An error occured bla bla bla");
}
}
return View(model);
}
My problem is, if I remove the AllowHtmlAttribute
and insert plain text in the description field, all is ok and I get my redirect after save, but if I put the AllowHtmlAttribute
on the field description and insert some Html text, after save instead of the redirect I get a blank page with only this text:
Object moved to here.
If I click on "here", I'm redirected to the right url.
Am I missing something obvious?