加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC帖子模型的示例?

发布时间:2020-12-16 07:26:49 所属栏目:asp.Net 来源:网络整理
导读:我正在观看 HaHaa presentation on ASP.NET MVC from MIX并且他们提到使用Post Model,我猜他们说你可以使用仅用于发布的模型.我试过寻找这个例子.我不明白他们在说什么?有没有人有一个例子,说明在视图模型和帖子模型不是同一类型的强类型视图中这可能如何工
我正在观看 HaHaa presentation on ASP.NET MVC from MIX并且他们提到使用Post Model,我猜他们说你可以使用仅用于发布的模型.我试过寻找这个例子.我不明白他们在说什么?有没有人有一个例子,说明在视图模型和帖子模型不是同一类型的强类型视图中这可能如何工作?

解决方法

下面是ScottGu的例子扩展了一下.正如@SLaks所解释的,当收到POST时,MVC将尝试创建一个新的MyPostName对象,并将其属性与from字段匹配.它还将使用匹配和验证的结果更新ModelState属性.

当操作返回视图时,它也必须为它提供模型.但是,视图不必使用相同的模型.实际上,可以使用包含扩展数据的不同模型强类型化视图,例如,它可以将导航属性绑定到DB表中的外部键;如果是这种情况,从POST模型映射到视图模型的逻辑将包含在POST操作中.

public class MyGetModel
{
    string FullName;
    List<MyGetModel> SuggestedFriends;
}

public class MyPostModel
{
    string FirstName;
    string LastName;
}

//GET: /Customer/Create
public ActionResult Create()
{
    MyGetModel myName = new MyGetModel();
    myName.FullName = "John Doe"; // Or fetch it from the DB
    myName.SuggestedFriends = new List<MyGetModel>; // For example - from people select name where name != myName.FullName
    Model = myName;
    return View();
}

//POST: /Customer/Create
[HttpPost]
public ActionResult Create(MyPostModel newName)
{
    MyGetModel name = new MyGetModel();
    name.FullName = newName.FirstName + "" + newName.LastName; // Or validate and update the DB 
    return View("Create",name);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读