gpt4 book ai didi

c# - MVC5 ViewModel 验证远程

转载 作者:行者123 更新时间:2023-11-30 16:49:00 24 4
gpt4 key购买 nike

我正在尝试在验证 View 模型的同一阶段验证用户名,其余验证工作正常,但我正在尝试使用以下代码片段来检查用户名是否已被使用:

// Cut down code to keep it simple.
public class UserAccountRegistration
{
[Remote("CheckUsername", "Validation", ErrorMessage = "Username already exists.")]
public string Username { get; set; }
}

我在 Controllers 目录中有一个名为“ValidationController.cs”的 Controller ,该 Controller 包含以下内容:

using System;
using System.Web.Mvc;
using Test.Helpers;
using System.Data.SqlClient;
using System.Data;

namespace Test.Controllers
{
public class ValidationController : Controller
{
// GET: Validation
public ActionResult Index()
{
return View();
}

[HttpGet]
public JsonResult CheckUsername(string Username)
{
Encryption hlpEncryption = new Encryption();
DataConnections hlpDBConn = new DataConnections();

bool bUsernameAlreadyExists = false;
string sEncUsername = hlpEncryption.Encrypt(p_sUsername);

SqlConnection conn = hlpDBConn.DBConnection();

using (SqlCommand cmd = new SqlCommand("CheckIfUsernameExists", conn) { CommandType = CommandType.StoredProcedure })
{
cmd.Parameters.AddWithValue("@Username", sEncUsername);

conn.Open();
bUsernameAlreadyExists = (Convert.ToInt16(cmd.ExecuteScalar()) > 0);
conn.Close();
}

return Json(bUsernameAlreadyExists, JsonRequestBehavior.AllowGet);
}
}

然而 CheckUsername 方法甚至没有被命中,我做错了什么?

谢谢。

最佳答案

让我们仔细检查几件事:

您已在布局中(最好)并按以下顺序正确引用了以下库:

    <script src="~/Scripts/jquery-2.2.3.min.js"></script>    
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

在您的网络配置文件中,您拥有:

  <appSettings>    
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

在你看来是这样的:

  @Html.LabelFor(m => m.Username)
@Html.TextBoxFor(m => m.Username)
@Html.ValidationMessageFor(m => m.Username)

更重要的是,在您第一次单击提交之前,删除验证不会触发。您需要将前面的文本包含在带有提交按钮的

中,以便能够验证用户名。它不会自 Action 为 Regex、Required 或 StringLength。我认为这种方法可以避免在用户确定这是他想要的用户名之前请求服务器。

关于c# - MVC5 ViewModel 验证远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37355360/

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