MVC 求大神指点
小弟刚刚看了几天MVC,有一些地方不是很明白,希望各位帮忙讲解一下。
(1)MVC的路由机制
MVC中路由有好几种定义,比如{controller}/{action}/{id}或者{reporttype}/{year}/{month}/{day},系统路由设置是放在Global.asax文件中的,,,貌似只能设置一种默认路由吧,一般默认为{controller}/{action}/{id},一个系统中只能有一个路由定义吗?那如果我打开报表,该怎么打开呢?
(2)MVC怎么从数据库中已存在的表中读取数据,而不是通过EFCodeFirst方式新增的表。
(3)我自定义了一个远程验证(Remote Validation),当不满足条件时是可以验证,但是当我保存数据的时候,确没反应。如果把我在Model上把它的特性去掉,就可以保存了。
代码如下:
Controller
public JsonResult CheckTitleUnqie(string Title)
{
if (Title.Length > 5)
{
return Json("标题太长了", JsonRequestBehavior.AllowGet);
}
else
{
return Json("",JsonRequestBehavior.DenyGet);
}
}
下面这个保存方法根本进不来。
[HttpPost]
public ActionResult Edit(Movie model)
{
var movie = db.Movies.Find(model.ID);
try
{
UpdateModel(movie);
db.SaveChanges();
return RedirectToAction("Details", new { id = movie.ID });
}
catch (Exception e)
{
ModelState.AddModelError("", "修改失败");
}
return View(movie);
}
Model:
public class Movie
{
public int ID { get; set; }
[Required(ErrorMessage="电影标题不能为空")]
//[StringLength(10,ErrorMessage="电影标题不能超过10个字符")]
[Remote("CheckTitleUnqie", "Movie")]
public string Title { get; set; }
public DateTime ResealseDate { get; set; }
//[Required(ErrorMessage = "价格不能为空")]
[Price(ErrorMessage = "价格不合理")]
//[RegularExpression(@"^(0|1-9\d)$",ErrorMessage="")]
public float Prices { get; set;}
[Required(ErrorMessage = "{0}不能为空")]
public string Type { get; set; }
}
视图的就不贴了,应该没关系吧。
------解决方案--------------------
1、可以在global里面添加多个路由的,根据自己需要的
------解决方案--------------------
1.当然是可以多个啊
2.可以用Ado.NET读取数据,再转换成实体类,或用DataTable也行
3.调试~ ^_^