0

我有注册模型

我的模特班

public class RegisterViewModel
{


    [Required]
    [StringLength(100, ErrorMessage = "Please enter a minimum of {2} characters", MinimumLength = 6)]
    [DisplayName("University ID")]
    [Remote("doesusernameExist", "HEC",null, ErrorMessage = "usr name is allready exist", HttpMethod = "POST")]
    public string usrname { get; set; }    }

我的 json 控制器类

 [HttpPost]
    public JsonResult doesusernameExist(string usrname)
    {

         var institute = db.Institutes.Find(HEI_ID);
                   return Json(institute == null);


    }

用于创建新用户和编辑用户,我正在使用上述模型。所以没有创建另一个模型,我想在编辑方法中禁用 dosusernameExist 调用方法

4

2 回答 2

2

首先在视图中添加一个隐藏字段:

@Html.hidden("PreviousUsername", Model.usrname)

在您的 .cs 类中添加以下内容:

[Remote("doesusernameExist", "HEC", ErrorMessage = "usr name is allready exist", AdditionalFields = "PreviousUsername")]
public string usrname { get; set; }

您的控制器操作方法应如下所示:

public JsonResult doesusernameExist(string usrname, string PreviousUsername)
{

     if(usrname==PreviousUsername)
     {
       return true;
     }
     var institute = db.Institutes.Find(HEI_ID);
     return Json(false, JsonAlloBehaviour.AllowGet);

}
于 2018-09-04T13:43:49.323 回答
1

首先在编辑视图中禁用客户端验证username

@Html.TextBoxFor(m => m.username, new { @data_val = "false" })

Edit Post Action 中的第二个删除验证结果usernamefrom ModelState

public ActionResult EditUser([Bind(Exclude = "usrname")]RegisterViewModel model)
{
    ModelState.Remove("username");
    if (ModelState.IsValid)
    {
    .
    .
    .
于 2015-04-06T14:22:58.610 回答