ASP.NET MVC验证表单

作者:超级管理员 更新时间:2017-09-13 09:58:32 来源:未知 点击:15642
代码如下        [Required(ErrorMessage = "标题不能为空")]        [Remote("NotExitesUserName","ProductM",ErrorM
代码如下

        [Required(ErrorMessage = "标题不能为空")]
        [Remote("NotExitesUserName","ProductM",ErrorMessage ="标题重复")]
        public string product_Name { get; set; }


 [HttpGet]
        public JsonResult NotExitesUserName() 
        {           
            string product_Name = Request.Params["product_Name"];
            var productm = yht.product.Where(x => x.product_Name == product_Name).FirstOrDefault();
            return productm == null ? Json(true,JsonRequestBehavior.AllowGet):Json(false,JsonRequestBehavior.AllowGet);
        }

添加的时候是对的

但是编辑的时候就有问题了

如果编辑的时候不改标题,就会提示了。
我把控制器的代码改成

[HttpGet]
        public JsonResult NotExitesUserName(int id) 
        {
           
            string product_Name = Request.Params["product_Name"];
            var productm = yht.product.Where(x => x.product_Name == product_Name).FirstOrDefault();
            return productm == null || productm.product_ID==id ? Json(true,JsonRequestBehavior.AllowGet):Json(false,JsonRequestBehavior.AllowGet);
        }

添加跟编辑就都出问题了

以下是关于本问题的解决方案:

解决方案1、
[Remote("NotExitesUserName","ProductM",ErrorMessage ="标题重复", AdditionalFields = "id")]
public JsonResult NotExitesUserName( int?id

允许id为空,编辑的时候根据这个id查找除了该id的其他的标题,比对有没有存在的



解决方案2、
引用 1 楼 chb345536638 的回复:
[Remote("NotExitesUserName","ProductM",ErrorMessage ="标题重复", AdditionalFields = "id")]
public JsonResult NotExitesUserName( int?id

允许id为空,编辑的时候根据这个id查找除了该id的其他的标题,比对有没有存在的

添加的时候是可以了,但是编辑还是不行

[HttpGet]
        public JsonResult NotExitesUserName(int? id) 
        {
            string product_Name = Request.Params["product_Name"];
            var productm = yht.product.Where(x => x.product_Name == product_Name).FirstOrDefault();
            if(productm==null||productm.product_ID==id)
            {
                return Json(true, JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(false, JsonRequestBehavior.AllowGet);
            }
        }



解决方案3、
引用 2 楼 a1239750460 的回复:
Quote: 引用 1 楼 chb345536638 的回复:

[Remote("NotExitesUserName","ProductM",ErrorMessage ="标题重复", AdditionalFields = "id")]
public JsonResult NotExitesUserName( int?id

允许id为空,编辑的时候根据这个id查找除了该id的其他的标题,比对有没有存在的

添加的时候是可以了,但是编辑还是不行

[HttpGet]
        public JsonResult NotExitesUserName(int? id) 
        {
            string product_Name = Request.Params["product_Name"];
            var productm = yht.product.Where(x => x.product_Name == product_Name).FirstOrDefault();
            if(productm==null||productm.product_ID==id)
            {
                return Json(true, JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(false, JsonRequestBehavior.AllowGet);
            }
        }




看你的图,你表里的主键模型字段是product_ID?没有id吧?那你要把我刚才你改的都改成product_ID,要对应才能获得值,你仔细看看有没有值吧
解决方案4、
引用 3 楼 chb345536638 的回复:
Quote: 引用 2 楼 a1239750460 的回复:

Quote: 引用 1 楼 chb345536638 的回复:

[Remote("NotExitesUserName","ProductM",ErrorMessage ="标题重复", AdditionalFields = "id")]
public JsonResult NotExitesUserName( int?id

允许id为空,编辑的时候根据这个id查找除了该id的其他的标题,比对有没有存在的

添加的时候是可以了,但是编辑还是不行

[HttpGet]
        public JsonResult NotExitesUserName(int? id) 
        {
            string product_Name = Request.Params["product_Name"];
            var productm = yht.product.Where(x => x.product_Name == product_Name).FirstOrDefault();
            if(productm==null||productm.product_ID==id)
            {
                return Json(true, JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(false, JsonRequestBehavior.AllowGet);
            }
        }




看你的图,你表里的主键模型字段是product_ID?没有id吧?那你要把我刚才你改的都改成product_ID,要对应才能获得值,你仔细看看有没有值吧



可以了,太感谢你了!
有一个问题想请教一下,就是那个product_ID的值是怎么来的?新手一枚
解决方案5、
你看下网页生成的源代码,看下标题框那里,有生成data-val-remote-additionalfields这样的属性的,如果你不用Remote特性标记,也可以自己手动在前台给加起来也会有效果,可以看下 这里最后写了一下的

推荐阅读

热门内容

关于对文件名使用 string.Repl

这里我用replace()想要让文件名变...

wpf的keydown事件

页面只有这句话       ...

ASP.NET MVC验证表单

代码如下        [Require...

EasyUi Datagrid+Deta

各位牛人,有没有做过类似的功能效果,Ea...

c#串口程序界面卡死问题

 private void sp_Dat...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫...

我在Winform中修改WebBrows

我在Winform中修改WebBrows...

c# 引用webservice 出现问题

我在浏览器浏览没问题就是在项目中添加服务...

有人这么黑易语言,连我都看不下去了

本帖最后由caozhy于2017-09-...

窗体加载时,代码未执行完就弹出了窗体

不知道是这样写不合理,还是我哪里写错了呢...

最新内容

关于对文件名使用 string.Replace() 没有作用 请教

这里我用replace()想要让文件名变成E:\CloudMusic\薛之谦 -...

以下代码实现的单例模式有什么缺陷?如果有,请做出你的修改!

public sealed class Singleton       stat...

wpf的keydown事件

页面只有这句话         

ASP.NET MVC验证表单

代码如下        [Required(ErrorMessage = "标题...

以XX开头的标识符太长,最大长度为128

本帖最后由qz6412525于2017-09-1212:09:14编辑如题,是一...

分部声明包含冲突的可访问性修饰符

代码如下:namespace ConstDefinitionLib{    pu...

关于 查询语句 中select 索引问题

string[] fruits = { "apple", "banana", "...

EasyUi Datagrid+DetailView 如何让他默认全部展开

各位牛人,有没有做过类似的功能效果,EasyUI DataGrid+Detail...

c#串口程序界面卡死问题

 private void sp_DataReceived(object sen...

浏览器内核问题

请问有谁会使用vs2013,用c#或vb编写在winform里面嵌一个谷歌浏览器...

LINQ to Entities 不识别方法“System.DateTime AddMinutes(Double)”,因此该方法无法转换为存储表达式。

代码如下,求大神帮忙看看:                    DateTim...

mvc 怎么执行mysql里的存储过程

我的连接是这样的。 public class mysqlconn : DbCon...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫描之后,需要存档,有些背面空白的,需要剔...

我在Winform中修改WebBrowser控件修改User-Agent的方法貌似对WebkitBrowser无效,我已经修改为手机了

我在Winform中修改WebBrowser控件修改User-Agent的方法貌...

RawSocket抓包时,如果是正在传文件,则丢包严重的吓人

50M的文件传输,只抓到100-200KB。public void Run() ...

如何让Toast占满整个屏幕(包含状态栏)

本帖最后由sixsun1989于2017-09-1221:15:38编辑    ...

不熬夜看这里 苹果发布会直播全程回顾

        想必今天一早醒来,你的朋友圈和新闻头条一定都会被昨晚科技圈的大事...

网友心声有求必应 苹果同传四川话版

         在苹果秋季发布会开始前两周,我们针对网友喜欢听什么地方方言做过...

iPhone X演示出重大失误?背后另有真相

    中关村在线消息:苹果公司于美国西部时间9月12日上午10点(北京时间9月...

全视曲面商务旗舰 三星Note 8今晚发布

    中关村在线消息: 备受大家期待的三星新旗舰Note 8将于今晚18时在北...