这样的设计是否有违背MVC设计原则??

Posted 学习永無止境

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这样的设计是否有违背MVC设计原则??相关的知识,希望对你有一定的参考价值。

MVC 皆知为 Model-View-Controller

请求模型-〉Client发现请求-〉Controller接收+处理-〉返回Model给前端-〉前端接收处理模型Result

但是最近发现一个请求仿佛违背了MVC当初的设计原则(请高手指点一二):

定义模型:

public class Person
{
public string Name { get; set; }

public int Age { get; set; }
}

Controller中Action:

// GET: /Main/
public ActionResult Index(Person p)
{
p.Name = "Tom";
p.Age = 20;
return View(p);
}

运行结果如下:

看起来没有问题 View中的确 显示为Model内容,

一、现在我们修改一下 请求地址栏的信息 如图:

二、修改姓名信息 ,然后提交表单

问题出现了吧  其他地方都没有修改 只是修改了一下地址栏的信息或表单信息 返回的Model仍为原先值  为什么会变化那么大??

原因如下:

MVC 表单扩展类中 将InputHelper取值规则改为 优先取ModeState 然后取ViewData

 

那么问题来了,client请求Controller时返回的Model 并不是我们修改后的值,是不是违背了当初的设计??

以上是关于这样的设计是否有违背MVC设计原则??的主要内容,如果未能解决你的问题,请参考以下文章

设计金融交易系统数据库架构的设计原则?

十 如何应用设计原则

类模型-应用设计原则和设计模式

设计模式-软件设计原则2-单一职责原则

设计模式之设计原则-依赖倒置原则

设计原则之单一职责原则