为了账号安全,请及时绑定邮箱和手机立即绑定

尝试在 MVC 5 中设置自定义验证时出错

尝试在 MVC 5 中设置自定义验证时出错

C#
斯蒂芬大帝 2022-06-12 11:17:41
尝试使用 DataAnnotations 在模型中提交具有自定义验证集的表单时,我收到错误消息“找不到路径'/ItemController/IsAssetAvailable' 的控制器或未实现 IController”。控制器布局:控制器代码:public ActionResult IsAssetAvailable(string Asset_Tag_Nbr)    {        using (db)        {            try            {                var asset = db.Items.Single(i => i.Asset_Tag_Nbr == Asset_Tag_Nbr);                return Json(false, JsonRequestBehavior.AllowGet);            }            catch (Exception)            {                return Json(true, JsonRequestBehavior.AllowGet);            }        }    }数据注释:[Display(Name = "Asset Tag #")][Remote("IsAssetAvailable", "ItemController", ErrorMessage = "Asset # already exists.")]public string Asset_Tag_Nbr { get; set; }看法:<div class="form-group col-sm-4">     @Html.LabelFor(model => model.Asset_Tag_Nbr, new { @class = "control-label col-md-12" })     <div class="col-md-10">         @Html.EditorFor(model => model.Asset_Tag_Nbr, new { htmlAttributes = new { @class = "form-control" } })         @Html.ValidationMessageFor(model => model.Asset_Tag_Nbr)     </div></div>
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

问题似乎来自内部声明的控制器名称,RemoteAttribute如下所示:


[Remote("IsAssetAvailable", "ItemController", ErrorMessage = "Asset # already exists.")]

public string Asset_Tag_Nbr { get; set; }

您正在使用RouteAttribute 2 个重载:


public RemoteAttribute (string action, string controller)

参数是控制器名称,包含对应的controller动作方法名称,不带Controller后缀。因此,您应该使用RouteAttribute如下示例的参数:


[Display(Name = "Asset Tag #")]

[Remote("IsAssetAvailable", "Item", ErrorMessage = "Asset # already exists.")]

public string Asset_Tag_Nbr { get; set; }


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号