相关疑难解决方法(0)

DataAnnotation验证和自定义ModelBinder

我一直在使用ASP.NET MVC2进行一些实验,并遇到了一个有趣的问题.

我想在MVC应用程序中定义将用作模型的对象周围的接口.另外,我想通过使用验证属性标记此接口的成员来在功能上利用新的DataAnnotation.

所以,如果我的网站有一个"Photo"对象,我将定义以下界面:

public interface IPhoto 
{ 
 [Required]
 string Name { get; set; }

 [Required]
 string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我将定义以下实现:

public class PhotoImpl : IPhoto 
{
 public string Name { get; set; }
 public string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的MVC App控制器可能包含以下方法:

public class PhotoController : Controller
{
 [HttpGet]
 public ActionResult CreatePhoto()
 {
  return View(); 
 }

 [HttpPost]
 public ActionResult CreatePhoto(IPhoto photo)
 {
  if(ModelState.IsValid)
  {
   return View(); 
  }
  else
  {
   return View(photo);
  }

 }
}
Run Code Online (Sandbox Code Playgroud)

最后,为了将PhotoImpls绑定到这些操作方法中的参数,我可能会对DefaultModelBinder实现以下扩展: …

asp.net-mvc asp.net-mvc-2

6
推荐指数
2
解决办法
4100
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-2 ×1