I have the following form which is not working as planned. Can't use Umbraco Forms for it
Model:
public AssessmentTypePageViewModel() : base(UmbracoContext.Current.PublishedContentRequest.PublishedContent)
{
CompanyName = "Amazon";
PostCode = "BT15 3TH";
}
public string CompanyName { get; set; }
[Required]
public string PostCode { get; set; }
View:
@inherits UmbracoViewPage<TheWebsite.Models.Views.AssessmentTypePageViewModel>
@using Umbraco.Forms.Mvc.Models;
<div class="form-group">
@Html.LabelFor(x => Model.CompanyName, new { @class = "form-control" })
@Html.TextBoxFor(x => Model.CompanyName, new { autocapitalize = "off", @class = "form-control first last", autofocus = "", placeholder = "Company Name", type = "text" })
</div>
<div class="form-group">
<label for="Model.PostCode" class="control-label"> PostCode <em class="req">*</em> </label>
@Html.TextBoxFor(x => Model.PostCode, new { @class = "form-control" })
@Html.ValidationMessageFor(x => Model.PostCode, "Please fill in postcode")
</div>
which generates
<input autocapitalize="off" autofocus="" class="form-control first last valid" id="CompanyName" name="CompanyName" placeholder="Company Name" type="text" value="Amazon">
Controller:
[HttpPost]
public ActionResult Index(AssessmentTypePageViewModel Model)
{
UmbracoContext.Current.HttpContext.Trace.Warn("companyname", Model.CompanyName);
UmbracoContext.Current.HttpContext.Trace.Warn("PostCode", Convert.ToString(Model.PostCode));
I hope I have given enough information here.
Anyway, the Binding works in that the Company Name field has "Amazon" in it when it is shown, but once this is changed and submitted, the Trace still shows "Amazon" afterwards, even though the value of CompanyName should have been changed.
I'm a bit new to all this MVC stuff so hopefully it's just something obvious that I'm missing. Thanks
Model Binding Issue
I have the following form which is not working as planned. Can't use Umbraco Forms for it
Model:
View:
which generates
Controller:
I hope I have given enough information here.
Anyway, the Binding works in that the Company Name field has "Amazon" in it when it is shown, but once this is changed and submitted, the Trace still shows "Amazon" afterwards, even though the value of CompanyName should have been changed.
I'm a bit new to all this MVC stuff so hopefully it's just something obvious that I'm missing. Thanks
Replying to myself:
As per: http://ideasof.andersaberg.com/development/aspnet-mvc-4-model-binding-null-on-post
I changed the Controller method to
public ActionResult Index(AssessmentTypePageViewModel incomingModel)
and it now works.
is working on a reply...