- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 ASP.NET MVC3 RC,并且正在使用不引人注目的 JQuery 验证,如 Brad Wilson 在 his blog 上所述。 。它工作得很好,但是当我将表单(在 Ajax 中)发送到服务器时,如果我的模型状态无效,我会进行一些服务器端验证并返回同一行(包含在部分 View 中)。 2 个问题:
第一:当我在操作中执行 return PartialView
时,所有不显眼的属性都不会呈现。我找到了一种“不优雅”的方法来做到这一点,但是当我这样做时,客户端验证被破坏了。从操作返回后,即使我在更新的行上调用 jQuery.validator.unobtrusive.parse()
,$("form").valid()
始终即使情况并非如此,也返回 true。
第二:我希望渲染的 View 在服务器上呈现为字符串,以便我可以将其以 JsonResult 形式发送回来(例如:myJSonResult.html=RenderPartialToString("partialName",model)
)。
有引用,这是我的观点(editInvitation):
<td>
<%= Html.HiddenFor(x=>x.ID,new{id="ID"}) %>
<%= Html.HiddenFor(x=>x.GroupID,new{id="GroupID"}) %>
<%: Html.TextBoxFor(x => x.Name, new { id = "Name" })%><%:Html.ValidationMessageFor(x=>x.Name) %>
</td>
<td>
<%: Html.TextBoxFor(x => x.Email, new { id = "Email" })%> <%:Html.ValidationMessageFor(x=>x.Email) %>
</td>
<td>
<%: Model.Status.ToFriendlyName()%>
</td>
<td>
<%= InvitationsViewModel.RenderActions(Model, Html, InvitationsViewModel.CreateRowID(Model.ID))%>
</td>
还有我的 Controller 操作:
if (TryUpdateModel(invitation))
{
validModel = true;
//Other stuff
}
if (Request.IsAjaxRequest())
{
//TODO : I return a partial view but I would prefer to return a JSonResult with the rendered view as a string in an Property of my JSon result
return PartialView(validModel ? "DisplayInvitation" : "EditInvitation", invitation);
}
谢谢
最佳答案
我终于让它发挥作用了。方法如下:
HtmlHelper helper = GetHelper();
MvcHtmlString partialView = helper.Partial("myView" , model);
var result = new { success = ModelState.IsValid, html = partialView.ToString() };
return Json(result);
有辅助函数:
protected HtmlHelper GetHelper()
{
return GetHelper(string.Empty);
}
protected HtmlHelper GetHelper(string formID)
{
HtmlHelper helper = new HtmlHelper(getViewContext(formID), new ViewPage { ViewData = this.ViewData });
helper.EnableClientValidation(isClientValidationEnabled());
helper.EnableUnobtrusiveJavaScript(isUnobtrusiveJavascriptEnabled());
return helper;
}
private ViewContext getViewContext(string formID)
{
var vc = new ViewContext(this.ControllerContext, new WebFormView(this.ControllerContext, "~/Views/Home/Index.aspx"), this.ViewData, new TempDataDictionary(), new System.IO.StringWriter());
vc.UnobtrusiveJavaScriptEnabled = isUnobtrusiveJavascriptEnabled();
vc.ClientValidationEnabled = isClientValidationEnabled();
vc.FormContext = new FormContext { FormId = formID };
return vc;
}
我不确定这是最好的方法,但它对我有用。我们希望 ASP.NET MVC 团队能够提供一种更简单的方法来将 View 呈现为字符串。
谢谢
关于jquery - PartialView 和不显眼的客户端验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187742/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!