Я использую jQuery.load()
для частичного просмотра. Эта часть выглядит следующим образом:
$('#sizeAddHolder').load(
'/MyController/MyAction', function () { ... });
Код для действий в моем контроллере следующий:
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);
}
Я возвращаю частичное представление, которое выглядит примерно так:
<% 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>
<% } %>
В этом случае проверка на стороне клиента не работает. Более того, script, который содержит сообщения проверки, также не включен в возвращаемое представление. Оба свойства в моем классе модели имеют атрибуты Required
и StringLength
.
Есть ли способ инициировать проверку на стороне клиента в представлении, которое было загружено следующим образом?