ASP.NET MVC 2 loading partial view using jQuery - no client side validation
Posted
by brainnovative
on Stack Overflow
See other posts from Stack Overflow
or by brainnovative
Published on 2010-04-16T11:44:23Z
Indexed on
2010/04/16
12:03 UTC
Read the original article
Hit count: 880
I am using jQuery.load()
to render a partial view. This part looks like this:
$('#sizeAddHolder').load(
'/MyController/MyAction', function () { ... });
The code for actions in my controller is the following:
public ActionResult MyAction(byte id)
{
var model = new MyModel
{
ObjectProp1 = "Some text"
};
return View(model);
}
[HttpPost]
public ActionResult MyAction(byte id, FormCollection form)
{
// TODO: DB insert logic goes here
var result = ...;
return Json(result);
}
I am returning a partial view that looks something like this:
<% using (Html.BeginForm("MyAction", "MyController")) {%>
<%= Html.ValidationSummary(true) %>
<h3>Create my object</h3>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp1) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Size.ObjectProp1) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp1) %>
</div>
div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp2) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ObjectProp2) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp2) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
Client side validation does not work in this case. What is more the script that contains validation messages also isn't included in the view that's returned. Both properties in my model class have Required
and StringLength
attributes.
Is there any way to trigger client side validation in a view which has been loaded like this?
© Stack Overflow or respective owner