html向后台传参的几个注意事项

 <input type="checkbox" name="b" />
 <input type="checkbox" name="a" value="1"/>
 <input type="checkbox" name="a"  value="2"/>

1、MVC的Action参数如 Add(string a),如果页面选择了复选框,那么此时a的值是1,只能获取第一个值
2、如果没有选择任何复选框,则a的值为null,此时获取需要Add(string[] a)来获取,获取之后需要判断是否为null
3、Request.Form[“a”] 如果选择了复选框,那么此时Request.Form[“a”]值是1或者1,2或者2,如果没选复选框则值是null
4、

<input type="text" value="" name="a"> input type="text" value="" name="a"> 

文本框,不管填没填内容都不会是null,如果全为空,则Request.Form[“a”]和mvc的string [] a 的结果都是 空字符,空字符

有数据的表插入主键

在有数据的表里插入主键
一般这种情况是数据是导入的,没有建立主键,此时想插入主键,首先先建立一个int类型、可以为null的字段,我这里是CarConfigID,然后运行

declare @i int   
set @i=1
 DECLARE My_Cursor CURSOR --定义游标  
FOR (SELECT * FROM ST_CarConfig) --查出需要的集合放到游标中  
OPEN My_Cursor; --打开游标  
FETCH NEXT FROM My_Cursor ; --读取第一行数据  
WHILE @@FETCH_STATUS = 0  
    BEGIN  
        update ST_CarConfig set CarConfigID=@i WHERE CURRENT OF My_Cursor; --更新  
		set @i=@i+1
        FETCH NEXT FROM My_Cursor; --读取下一行数据  
    END  
CLOSE My_Cursor; --关闭游标  
DEALLOCATE My_Cursor; --释放游标  
GO  

运行完成后,到数据库设计里面将CarConfigID设置为主键,自增1,SQL Server不报错,保存即可。

类型同时存在于XX

一般情况下出现这种问题是有两个重名的对象比如
using model;
using models;
var a=new b{}
model命名空间下面包含类b,models命名空间下也包含类b,导致程序不知道到底要实例化哪个命名空间下的b,导致此错误的发生。

我的web项目引用了model项目,之后我将model改名为models,清理了解决方案之后发现依然报错,最后发现web的bin目录下清理解决方案的时候仍然存在model.dll,删掉解决。

jquery重复绑定导致的多次提交

$(function () {
        $("#callback").click(function () {
            $("#confirmBox").modal();
            $("#confirmBtn").click(function () {
                $.ajax({
                    type: 'POST',
                    url: "@Url.Action("Bill_CallBack", "bill")",
                    data: {billNo:'@Model.BillNo'},
                    success: function (r) {
                        $("#confirmBox").modal("hide");
                        msg(r.IsSuccess,r.Msg,"")
                    },
                        dataType: "Json"
                    })
        })
        })

    })

$(“#confirmBtn”).click的写法是绑定事件,第一次点提交没有问题,第二次点提交会发现数据被提交了两次,第三次点的时候数据会被提交三次…原因是按钮绑定了方法会重复执行,可以先解除绑定,也可以采用Jquery的one方法,如下,则不会有重复提交的情况。

$(function () {
        $("#callback").click(function () {
            $("#confirmBox").modal();
            $("#confirmBtn").one("click",function () {
                $.ajax({
                    type: 'POST',
                    url: "@Url.Action("Bill_CallBack", "bill")",
                    data: {billNo:'@Model.BillNo'},
                    success: function (r) {
                        $("#confirmBox").modal("hide");
                        msg(r.IsSuccess,r.Msg,"")
                    },
                        dataType: "Json"
                    })
        })
        })

    })

Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded

程序报错,Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded,一般两种情况
第一、主键不存在
第二、在载入后模型被修改或者删除
我的问题恰好属于第一种,调试后发现Mode.ID为0,原因如下

@Html.HiddenFor(model => model.ID)没有写在Form里,服务器接收到的ID是空值,由于是int类型,自动转换为0