【发布时间】:2014-10-04 09:29:13
【问题描述】:
我想知道是否可以通过视图模型 (MVC) 向客户端返回一些值,或者在知道验证结果后在客户端上执行一些 javascript。
有人熟悉合适的类和方法吗?
【问题讨论】:
标签: javascript asp.net validation
我想知道是否可以通过视图模型 (MVC) 向客户端返回一些值,或者在知道验证结果后在客户端上执行一些 javascript。
有人熟悉合适的类和方法吗?
【问题讨论】:
标签: javascript asp.net validation
当然可以,因为正常的 AJAX 请求会返回答案。 如果您将此答案设为有效 JSON 并从中重新组装客户端模型,则对其进行验证并相应地运行代码。
我通常通过在来自 MVC 的 ajax 回复中添加“成功”和“有效负载”来解决这个问题。 所有客户端 Ajax 调用都会检查“成功”值,并相应地决定使用有效负载。
例如:
回复是:
{success : false, payload:"A null pointer occurred somehwere."}
或:
{success : true, payload:{id:12, label:"banana"}}
然后我可以在我的 ajax 调用中执行此操作:
var yourViewmodel = {id:null, label:"banana"};
jQuery.ajax({
cache: false,
url: "./save",
type: "POST",
data: yourViewmodel,
success: function (response) {
if(response.success == true)
{
if(!validate(response.payload))
{
//something about the response payload still was not valid!
}
else
{
//here we can do whatever we want to do if the response was valid.
onAfterValidate(response.payload);
}
}
else
{
alert("An error occurred : " + response.payload);
}
},
error: function(data, errorThrown)
{
alert('request failed :'+errorThrown);
}
});
【讨论】: