Here's my model:
namespace MvcApplication3.Models
{
public class LicenseModel
{
public LicenseModel()
{
ID = 1;
LicenseKey = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." +
"In auctor nisi sed ultricies consectetur. Suspendisse euismod " +
"sollicitudin tortor, nec accumsan eros facilisis sit amet. Integer" +
"non felis vel risus fermentum accumsan. Vivamus gravida orci in libero" +
"semper, nec ultrices turpis sodales. Quisque sit amet cursus dui, ac " +
"pharetra eros. Morbi ultricies risus ut turpis molestie imperdiet. ";
}
public bool Save()
{
//do whatever to do to save
return true;
}
public int ID { get; set; }
public string LicenseKey { get; set; }
}
}
My controller:
namespace MvcApplication3.Controllers
{
public class LicenseController : Controller
{
//
// View License/
public ActionResult ViewLicense()
{
LicenseModel model = new LicenseModel();
return View(model);
}
[HttpPost]
public ActionResult UpdateLicense(int id, LicenseModel model)
{
if (ModelState.IsValid)
{
model.Save();
}
return View("ViewLicense", model);
}
}
}
And my strongly typed view, with model declaration at the top:
@model MvcApplication3.Models.LicenseModel
<h2>ViewLicense</h2>
@using (Html.BeginForm("UpdateLicense", "License", FormMethod.Post))
{<div>
<div>@Html.HiddenFor(m=>m.ID) License Key :</div>
<div>@Html.EditorFor(m=>m.LicenseKey)</div>
</div>
<div>
<button type="submit" id="btnsubmit" value="SUBMIT">SUBMIT</button>
</div>
}
Notice that I did not use ajax for posting.
You will need to modify your RouteConfig.cs:
namespace MvcApplication3
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "License", action = "ViewLicense", id = UrlParameter.Optional }
);
}
}
}
Put a breakpoint in the controller and see your changed license key is in the model in the UpdateLicense method.
Hope it helps!