在 mvc 中对远程验证的成功响应执行一些操作

2024-05-12

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

我使用 MVC 远程属性验证:

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

当我返回这个时:

return Json(true, JsonRequestBehavior.AllowGet);

然后我想执行一些操作,例如设置隐藏字段值,该值从操作返回或显示绿色图标图像。我还想返回 true 的 ID。

如何实现这个东西呢?

简而言之,我想做一些关于成功的事情。


实现此目的的一种方法是从验证操作中添加自定义 HTTP 响应标头:

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);
        }
    };
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 mvc 中对远程验证的成功响应执行一些操作 的相关文章

随机推荐

  • fsockopen() 和 SSL 出错,“无法启用加密”

    我正在尝试连接到 Nominet EPP 测试台 但收到 无法启用加密 的消息 这似乎是一个罕见的错误 没有记录的解决方案或原因 用行 socket fsockopen ssl testbed epp nominet org uk 700
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 如何从 Windows 7 PC 上完全卸载 Python 2.7

    从这里安装了Python 2 7 https www python org downloads release python 279 https www python org downloads release python 279 然后我
  • jq Streaming - 过滤嵌套列表并保留全局结构

    在一个大型 json 文件中 我想从嵌套列表中删除一些元素 但保留文档的整体结构 我的示例将其输入为 但真实的输入足够大以要求流式传输 keep untouched keep this this list filter this keep
  • 来自多元 t 分布的样本 python

    我想知道Python中是否有一个从多元学生t分布中采样的函数 我有包含 14 个元素的均值向量 14x14 协方差矩阵和自由度 我想从这个 t 分布中采样一个向量 对于一维情况 我使用 stats t rvs df loc scale 并且
  • Scala(或 Java)中泛型函数的特化

    是否可以在 Scala 中专门化泛型函数 或类 例如 我想编写一个将数据写入 ByteBuffer 的通用函数 def writeData T buffer ByteBuffer data T buffer put data 但由于 put
  • AspNet vNext 上的 Kestrel 不提供 / 下的索引页面

    我需要能够在默认网址下提供我的 index html 使用 Kestrel Web 服务器 现在我只能使用完整路径访问我的静态文件 即 index html 同样 这在 VisualStudio 上完美运行 上下文是带有 Kestrel 的
  • 如何使用javascript将视频文件转换为字符串?

    我在 signalR 工作 我想通过将视频文件拆分为不同部分来将视频文件从一个客户端发送到另一个客户端 我已经通过分割图像源数据发送图像并在另一个客户端上接收该图像 document getElementById fileUpload ad
  • React Native Expo 客户端网络请求失败

    网络请求失败 我尝试过允许端口连接 通过 sudo ufw 允许任何端口命令 但它没有帮助 fetch http 192 XXXXXX form user registration php method POST headers Accep
  • 如何设置管理员批准模型的编辑

    我需要一个普通用户可以编辑模型的系统 但编辑实际上只有在管理员批准后才会发生 我发现了一颗宝石 叫做纸迹 https github com airblade paper trail它确实有模型版本控制 但不具体支持我想要做的事情 我想知道其
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • 使用 CustomUrlHelper 覆盖 UrlHelper - ASP.NET CORE 2.0

    有没有办法强制我的 ASP NET Core 2 0 应用程序使用我在各处编写的自定义 UrlHelper 我有一个具有自定义逻辑的类 public class CustomUrlHelper UrlHelper 我希望它能在任何地方使用
  • 小部件如何确定登录 WireCloud 的用户?

    作为小部件开发人员 我希望根据登录 WireCloud 的用户在小部件中显示不同的信息 小部件如何在加载时确定登录 WireCloud 的用户是谁 WireCloud 支持通过 MashupPlatform API 访问当前可用的上下文信息
  • Powershell SQL Server数据库连接和连接超时问题

    我有一个连接到 SQL Server 2012 数据库的 powershell 脚本 该脚本运行 SQL 查询并将结果集放入数据表中 以将格式化的电子邮件发送给相关方 下面是问题所在的代码片段 CBA New Object System D
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • 透视切换面板在 Eclipse 中消失

    Eclipse 崩溃后 小透视切换窗格从 Eclipse 窗口的右上角消失了 我下载了最新版本并尝试打开它 使用相同的工作区 但按钮仍然消失 这是一个屏幕截图 并放大 有任何想法吗 我仍然可以通过选择 窗口 gt 打开透视图 来切换透视图
  • Galaxy Nexus 4.1.1 和 ISO14443 读卡器

    是否可以在 Galaxy Nexus Jelly Bean 4 1 1 移动设备和任何常规桌面非接触式读卡器 ISO 14443 A B 之间建立连接 据我所知 android不支持卡模拟模式 所以只能通过p2p模式来完成 p2p 是否基于
  • Python 错误:将 statsmodels 与一行数据一起使用时,对象的 len() 未调整大小

    我可以使用 statsmodel 的 WLS 加权最小二乘回归 http statsmodels sourceforge net devel generated statsmodels regression linear model WLS
  • 在 mvc 中对远程验证的成功响应执行一些操作

    我正在使用远程验证来检查我的 asp net mvc 3 应用程序 C 注册期间用户名的可用性 我使用 MVC 远程属性验证 Remote IsUserNameAvailable User public string UserName ge