gpt4 book ai didi

asp.net-mvc-3 - 在 mvc 中对远程验证的成功响应做一些事情

转载 作者:行者123 更新时间:2023-12-04 02:56:38 28 4
gpt4 key购买 nike

我在注册 asp.net mvc 3 应用程序 (C#) 期间使用远程验证来检查用户名的可用性。

我使用 MVC 远程属性验证作为:

[Remote("IsUserNameAvailable", "User")]
public string UserName { get; set; }

当我返回这个时:
return Json(true, JsonRequestBehavior.AllowGet);

然后我想执行诸如设置隐藏字段值之类的操作,即从操作返回或显示绿色图标图像。而且我还想用 true 返回 ID。

如何实现这个东西?

简而言之,我想为成功做点什么。

最佳答案

实现这一点的一种方法是从验证操作中添加自定义 HTTP 响应 header :

public ActionResult IsUserNameAvailable(string username)
{
if (IsValid(username))
{
// add the id that you want to communicate to the client
// in case of validation success as a custom HTTP header
Response.AddHeader("X-ID", "123");
return Json(true, JsonRequestBehavior.AllowGet);
}

return Json("The username is invalid", JsonRequestBehavior.AllowGet);
}

现在在客户端上,我们显然有一个标准表单和一个用于用户名的输入字段:
@model MyViewModel
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.UserName)
@Html.ValidationMessageFor(x => x.UserName)
<button type="submit">OK</button>
}

现在拼图的最后一块是附加一个 complete remote 的处理程序用户名字段的规则:
$(function () {
$('#UserName').rules().remote.complete = function (xhr) {
if (xhr.status == 200 && xhr.responseText === 'true') {
// validation succeeded => we fetch the id that
// was sent from the server
var id = xhr.getResponseHeader('X-ID');

// and of course we do something useful with this id
alert(id);
}
};
});

关于asp.net-mvc-3 - 在 mvc 中对远程验证的成功响应做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702914/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com