我是MVC的新手,正在尝试理解AJAX调用和模型验证。这就是我所拥有的:
一个控制器操作,它为具有单个文本框和链接的视图提供服务。视图如下所示:
<div>
...
<input type="text" name="registration" value=""/><a id="checkRegoLink" href="#">Check rego</>
...
</div>checkRegoLink对操作执行$.ajax() POST调用,该操作为PartialViewResult提供服务。
$.ajax({
url:"/Entry/CheckRego",
type: "POST",
data: {...stuff...},
success: function (data, status, request){
$("#target").html(data);
},
});PartialViewResult提供一个强类型的局部视图_CreateEntry。该视图的模型具有各种属性的一些[Required]属性。下面是这个局部视图的一些片段:
@model namespace.EntryModel
@{ Html.EnableClientValidation(); }
@using (Html.BeginForm("CreateEntry", "Entry", FormMethod.Post))
{
...various entry fields, labels and stuff...
<input type="submit" value="Add Entry"/>
}我的问题是,如何将带有验证错误消息的部分视图返回到$("#target")目录中。在接受来自强类型视图的POST的控制器操作中,我尝试了return PartialView("_CreateEntry",model) -但它返回的是部分视图本身,带有验证错误消息,但当然是独立的,没有父布局。
任何想法都将不胜感激。在投票和接受答案方面,我正在慢慢变得更好。请原谅我的低统计-我一定会投票的答案,并接受他们,因为我走了。
谢谢,丹尼。
PS。我使用的是MVC 3最新的RC
发布于 2010-11-24 08:57:50
尝试使用Ajax.BeginForm()而不是Html.BeginForm()。看看它的用法,它应该允许你指定不同的选项,包括要更新的div。除非你有理由手动做,否则为什么要手动做已经内置的东西呢?
编辑:
您可以说“我的问题是,如何将该部分视图返回到带有验证错误消息的$("#target") div中。”
然后您会说"...但这会返回部分视图本身,并带有验证错误消息,但当然是它本身,没有父布局。“<--这不正是您想要的吗?
这不就是你想要的吗?部分视图是否包含验证错误消息?
https://stackoverflow.com/questions/4260505
复制相似问题