返回首页

简介
我已经讲过关于ASP.NET MVC的形式验证。在这篇文章中,我将探索实施验证逻辑的替代方法。我会告诉你如何使用IDataErrorInfo接口执行验证。

public interface IDataErrorInfo

{

    // Properties

    string Error { get; }

    string this[string columnName] { get; }

}

我们将修改{A},实现了IDataErrorInfo接口。为了实现IDataErrorInfo接口,我们必须创建一个部分类。我们的tblComment分部类如下:{C}
一件事要注意,当实体框架生成一个实体类,实体框架增加了部分的方法自动类。实体框架生成OnChanging OnChanged部分类的每个属性对应的方法。我们将修改我们UserCommentController类,如下所示:
public class UserCommentController : Controller

{

    private CommentEntities _db = new CommentEntities();

    [AcceptVerbs("GET")]

    public ActionResult UserComment()

    {

        return View(new tblComment());

    }

    [AcceptVerbs("POST")]

    public ActionResult UserComment([Bind(Exclude = "CommentID")] 

                                     tblComment commentToCreate)

    {

        // Validate

        if (!ModelState.IsValid)

            return View();

        // Add to database

        try

        {

            _db.AddTotblComment(commentToCreate);

            _db.SaveChanges();

            return RedirectToAction("UserComment");

        }

        catch

        {

            return View();

        }

    }

}

ASP.NET MVC框架的建立,通过使用一个模型粘结剂UserComment在()动作tblComment实例。模型绑定器负责创建的tblComment对象的一个​​实例,绑定HTML表单字段的tblComment对象的一个​​实例。现在,我将运行该项目,它会显示如下所示的用户评论查看:
{S0}摘要
在这篇文章中,我们探讨ASP.NET MVC的表单验证使用IDataErrorInfo接口。|法鲁克凯泽

回答

评论会员:游客 时间:2012/01/25
动画或更复杂的东西将是很好的
保罗Farry
评论会员:游客 时间:2012/01/25
第二部分将包括:发光,反射,亮化,和动画..这是适合初学者!虽然一个问题,为什么我们已经否决每一个初学者的文章,就像我们没有一个自己有一天吗??有趣的事情,但我认为非常低,自己这篇文章,但它有一个比较高的评价!!不告诉我们,这里的很多人都宁愿这么简单的文章,他们就可以开始与??我们将找到一种方法,或做一个!(\/)-(-.-)彗星(''')('''){BR}
会员3879182:

|这里没有新
评论会员:seeblunt 时间:2012/01/25
第二部分将包括:发光,反射,亮化,和动画..这是适合初学者!虽然一个问题,为什么我们已经否决每一个初学者的文章,就像我们没有一个自己有一天吗??有趣的事情,但我认为非常低,自己这篇文章,但它有一个比较高的评价!!不,告诉我们,这里的许多人都宁愿这么简单的文章,他们就可以开始与呢?

我们将找到一种方法,或做一个!
(\ /)
- ( - .-)
彗星(''')('''){ BR}
评论会员:韩晓 时间:2012/01/25
在C#中,所有的对象都是通过引用传递的,所以下面的代码将工作(不包括在参数列表中的ref)。 ref是不允许在事件处理程序的参数列表,因为它改变了方法调用的签名,所以它不匹配的EventHandler的签名。

private void pb_ctrl_MouseEnter(object sender, EventArgs e)

{

    PictureBox pb = ((PictureBox)(sender))

    pb.Size = new Size(28, 28);

    pb.Location = new Point((pb.Location.X)-2, (pb.Location.Y)-2);

}

...

this.pb_ctrl_Reload.MouseEnter += 

     new System.EventHandler(ref this.pb_img_MouseEnter);