ASP.NET MVC 3 入门级常用设置、技巧和报错

1、ASP.NET MVC 3 如何去除默认验证

    这个默认验证是在web.config配置文件中设置的
   设置为false就行了,
   这个是去掉所有model的默认验证,然后你可以在model中加上自己的验证,这样哪些属性需要验证,哪些不需要 就看你自己了

示例代码:

ViewCode
复制代码
public class Movie
{
public int ID { get ; set ; }

[Required(ErrorMessage
= " 必须输入标题 " )]
public string Title{ get ; set ; }

[Required(ErrorMessage
= " 必须输入发行日期 " )]
public DateTime ReleaseDate { get ; set ; }

[Required(ErrorMessage
= " 必须制定种类 " )]
public string Genre{ get ; set ; }

[Required(ErrorMessage
= " 必须输入票价 " )]
[Range(
1 , 100 ,ErrorMessage = " 票价必须在 1 到 100元之间 " )]
public decimal Price{ get ; set ; }

[StringLength(
5 ,ErrorMessage = " 最多允许输入5个字符 " )]
public string Rating{ get ; set ;}
public string Description { get ; set ; }
}
复制代码

2、ASP.NET MVC 3在视图中如何创建HTML标签,(在视图中把含有标签的字符编译成相应的标签)

    在asp.net mvc 3 中的视图中字符串输出是默认按原字符串输出的,如果需要把字符串中的标签字符编译成相应的标签

    则需要在输出的时候创建标签:@MvcHtmlString.Create(ViewBag.RegionHTML);ViewBag.RegionHTML是包含标签的字符串

3、ASP.NET MVC 3 中 报错:mvc 3属性不能设置为“null”值。必须将该属性设置为类型为“Int32”的非 null 值。

    这是因为数据库中的表中的字段中有null值(如:int,double,datetime 等)

    这里只需要把数据库中相应数字类型的的字段的值中的null改掉就行了,比如把数字类型NULL值改成0,字符类型NULL值改成空格,日期类型NULL值改成日期

4、数据库表需要加s

    ASP.NETMVC 3 中有个奇怪的现象,在使用EFCodeFirst后很多时候,数据库中的表需要加S,比如原来数据库表Product

   现在要变成Products,不然很多时候会报错:对象名'dbo.Products' 无效

5、ASP.NET MVC 3 中如何使用单选按钮 RadioButton

    这个比较简单,两种方式都行 @Html.RadioButton 或@Html.RadioButtonFor    

     1、 @Html.RadioButton("Sex",true)男       2、 @Html.RadioButtonFor(model=>model.Sex,true)男
           @Html.RadioButton("Sex",false)女            @Html.RadioButtonFor(model=>model.Sex,false)女

    这里的sex就是实体属性,数据类型是bool类型,它会自动匹配数据库的值,相同的选中

6、ASP.NET MVC 3 中如何引用js文件

    <script src="@Url.Content("~/Scripts/Calendar4.js")"type="text/javascript"></script>

    这里的Calendar4.js文件直接放在网站自动生成的Scripts文件夹中

7、ASP.NET MVC 3 文本框自定义单击事件 onclick事件

    有两种方式

         1、直接写html标签,和平时一样<input type="text" id="Birthday"name="Birthday" οnclick="MyCalendar.SetDate(this)"value="@Model.Birthday" />

      2、这样写:@Html.TextBox("Birthday", Model.Birthday, new { onclick ="MyCalendar.SetDate(this)",style="width:500px;" })

   数据交互上1和2没什么大的区别,但是如果你写了验证,1是不会引用错误样式,2会自动关联错误样式。

8、ASP.NET MVC 3 使用下拉列表 DropDownList

  首先在控制器中需要得到一个SelectList控件放到上下文中(ViewData)

  控制器代码如下:         

View Code
private CRMDBContext db = new CRMDBContext();

var list = db.Partments.ToList();

ViewData["partmentDDL"] = new SelectList(list, "Id", "PartName",employee.PartmentID);

  视图中:   

1、@Html.DropDownList( "PartmentID" ,(SelectList)ViewData[ "partmentDDL" ], "--this one--" )
  
2、 @Html.DropDownListFor(model =>model.PartmentID,(SelectList)ViewData[ "partmentDDL" ], "--this one--" )

     这里的PartmentID是实体属性,如果ViewData中的SelectList中存在PartmentID值则自动选中该值。"--thisone--"在下拉列表中添加一个选项,如果不需要添加,则填null

9、ASP.NET MVC 3 具有键“XXX”的ViewData 项属于类型“System.Int32”,但它必须属于类型“IEnumerable”。

  网上有人说是:错误主要原因是在提交处不认识原来的下拉列表(来自这里)他的解决方法是:在控制器中的接受处理的Action中重复构建DropDownList的代码,比如

ViewCode
复制代码
public ActionResult Create()

        {

            var actionList = db.Actions.ToList();

            ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");

            var popedomList = db.Popedoms.ToList();

            ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");

            return View();

        }



        //

        // POST: /ActionPopedoms/Create


        [HttpPost]

        public ActionResult Create(ActionPopedoms actionpopedoms)

        {

            var actionList = db.Actions.ToList();

            ViewData["actionDDL"] = new SelectList(actionList, "Id", "GetMoActName");

            var popedomList = db.Popedoms.ToList();

            ViewData["pepedomDDL"] = new SelectList(popedomList, "Id", "Property");



            if (ModelState.IsValid)

            {

                db.ActinPopedoms.Add(actionpopedoms);

                db.SaveChanges();

                return RedirectToAction("Index");

            }

            return View(actionpopedoms);

        }
复制代码

 大家注意这两个方法,第一个action方法是展示新增页面用的,也就是说你再其他地方点击新增功能时,通过这个方法在转到视图,这个视图就是新增页面,在这里方法里构建了两个下拉列表,当我们点击相应按钮确定新增后,请求就被第二个action方法,这个方法传进来的是一个实体对象(这里为什么是一个实体对象就不具体说明),在这里方法里面就是执行相关新增的功能的,在这里新增成功后会转到action方法index方法中,如果新增失败则转到当前页面(这里代码returnview(actionpopedoms)就是新增的页面),问题就出在这里,如果第二个方法没有重新构建下拉列表的代码,则这里返回当前页面后,页面就不认识第一个action方法中构建的下拉列表,所以页面最终报错是 具有键“XXX”的ViewData项属于类型“System.Int32”,但它必须属于类型“IEnumerable”。所以只需要确定第二个action方法里的操作不会报错就行了。如果你需要看错误信息,你可以try一下,并returnview(错误信息)

10、ASP.NET MVC 3 在Razor view页面中如何导入命名空间呢

@usingMyNamespace

@ using MyNamespace
@ using MyNamespace
@ using MyNamespace
@ using MyNamespace
@ using MyNamespace

11、ASP.NET MVC 3中如何获得请求的Url路径 

string url = "" ; //url全部分
url =HttpContext.Current.Request.Url.ToString();

12、ASP.NET MVC 3中 tempdata、viewdata、viewbag三者区别

     TempDataViewData ViewBag都可以用来保存数据,它们之间的区别如下:TempData保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。ViewData生命 周期和View相同,仅对当前View有效。ViewBag和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属MVC3里面新增的部分。-------来自地址

13、ASP.NET MVC 3 中使用单选按钮Radiobutton

  这里为了应急所需,暂只介绍一种用法代码如下

  


 
                    @Html.RadioButton("Sex", Model.Sex, Model.Sex)
                     
                      @Html.RadioButton("Sex", !Model.Sex, !Model.Sex)
                     
                      @Html.ValidationMessageFor(model => model.Sex)
在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值