text: Q:
  
  How to get the updated contents in a YUI simple editor from your view model
  
  I am using ASP.NET MVC3 with the razor view engine.  I am also using a the Yahoo User Interface 2 (YUI2) simple editor.
  My view has a view model called ProductEditViewModel.  In this view model I have a property defined as:
  public string LongDescription { get; set; }
  
  In my view I would create the YUI2 simple editor from this input field.  The field is defined in the view like:
  <td>@Html.TextAreaFor(x => x.LongDescription, new { cols = "75", rows = "10" })<br>
       @Html.ValidationMessageFor(x => x.LongDescription)
  </td>
  
  Here is a partial view of my Edit action method:
  [Authorize]
  [HttpPost]
  [ValidateInput(false)]
  public ActionResult Edit(ProductEditViewModel viewModel)
  {
       if (!ModelState.IsValid)
       {
            // Check if valid
       }
  
       // I added this as a test to see what is returned
       string longDescription = viewModel.LongDescription;
  
       // Mapping
       Product product = new Product();
       product.InjectFrom(viewModel);
  
       // Update product in database
       productService.Update(product);
  
       return RedirectToRoute(Url.AdministrationProductIndex());
  }
  
  When I view the contents of the longDescription variable then it should contain the values from the editor.  If I edit the contents in the editor then longDescription still only contains the original contents, not the updated contents.  Why is this?
  
  A:
  
  I suspect that somewhere in your POST action you have written something like this:
  [Authorize]
  [HttpPost]
  [ValidateInput(false)]
  public ActionResult Edit(ProductEditViewModel viewModel)
  {
       ...
       viewModel.LongDescription = "some new contents";
       return View(viewModel);
  }
  
  If this is the case then you should make sure that you have cleared the value from the ModelState before modifying it because HTML helpers will always first use the value from model state and then from the model. 
  So everytime you intend to manually modify some property of your view model inside a POST action make sure you remove it from modelstate:
  ModelState.Remove("LongDescription");
  viewModel.LongDescription = "some new contents";
  return View(viewModel);
  
  Now when the view is displayed, HTML helpers that depend on the LongDescription property will pick the new value instead of using the one that was initially submitted by the user.
  
  