我有这样简单的ASP.NET MVC动作:
public ActionResult Edit(EditPostViewModel data)
{
}
Run Code Online (Sandbox Code Playgroud)
在EditPostViewModel具有验证属性是这样的:
[Display(Name = "...", Description = "...")]
[StringLength(100, MinimumLength = 3, ErrorMessage = "...")]
[Required()]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)
在视图中,我使用以下帮助程序:
@Html.LabelFor(Model => Model.EditPostViewModel.Title, true)
@Html.TextBoxFor(Model => Model.EditPostViewModel.Title,
new { @class = "tb1", @Style = "width:400px;" })
Run Code Online (Sandbox Code Playgroud)
如果我在表单上提交此文本框放在验证中,将首先在客户端上完成,然后在service(ModelState.IsValid)上完成.
现在我有几个问题:
这可以与jQuery ajax提交一起使用吗?我正在做的只是删除表单,然后单击提交按钮javascript将收集数据,然后运行$.ajax.
服务器端会ModelState.IsValid工作吗?
如何将验证问题转发回客户端并将其呈现为使用build int validation(@Html.ValidationSummary(true))?
Ajax调用示例:
function SendPost(actionPath) {
$.ajax({
url: actionPath,
type: 'POST',
dataType: 'json',
data:
{
Text: $('#EditPostViewModel_Text').val(), …Run Code Online (Sandbox Code Playgroud)