Mak*_*jer 10 validation asp.net-mvc jquery partial-views asp.net-mvc-2
我jQuery.load()用来渲染局部视图.这部分看起来像这样:
$('#sizeAddHolder').load(
'/MyController/MyAction', function () { ... });
Run Code Online (Sandbox Code Playgroud)
我的控制器中的操作代码如下:
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);
}
Run Code Online (Sandbox Code Playgroud)
我返回的部分视图看起来像这样:
<% 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>
<% } %>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,客户端验证不起作用.更重要的是,包含验证消息的脚本也不包含在返回的视图中.在我的模型类这两个属性都Required和StringLength属性.有没有办法在这样加载的视图中触发客户端验证?
首先,您应该返回部分视图而不是视图.
return PartialView(model);
Run Code Online (Sandbox Code Playgroud)
其次,您是否尝试使用AJAX加载此局部视图?在这种情况下,您可能希望使用jquery.ajax
function ajax_update(path)
$.ajax {
url: path,
success: function(result) {
$('#sizeAddHolder').html(result);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23750 次 |
| 最近记录: |