suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Ich habe immer das Gefühl, dass asp.net MVC im Vergleich zu PHPs MVC umständlicher ist. Asp.net ist viel problematischer.

Geht es dir genauso?

Wie schreibe ich MVC?

Mir fällt das Schreiben sehr schwer

PHP:

M:
class Teacher {
  function add($data) {
    $sql = "insert into teacher_table($teacher_name) values($data['teacher_name'])";
    return $db->query($sql);
  }
}

V:
(省略)

C:
class Teacher {
  $data = array("teacher_name"=>$_POST["teacher_name"],....);
  $row = new Teacher();
  $row->add($data);
  echo "Yeah~!";
}

asp.net verfügt nicht über ein so flexibles Array wie PHP. Der Datenaustausch zwischen m-v-c wird über das Array geleitet, oder? Es scheint, dass es in den Tutorials ausschließlich um das Schreiben von Entitätsklassen geht

漂亮男人漂亮男人2783 Tage vor693

Antworte allen(3)Ich werde antworten

  • 怪我咯

    怪我咯2017-05-16 17:08:17

    没写过php,但有ASP.NET MVC的开发经验,这里简单地说一下自己的理解。
    首先通过一张图来看ASP.NET MVC的一个交互原理:

    Model层其实是一个很大的概念,包含了服务,业务逻辑,数据持久化等工作;Controller层则是一个起到一个连接Model层和View层的作用;View层就是界面,这点应该很清晰的。
    通过你的问题描述,比较纠结的一点是Controller层和View层在做交互的时候,ASP.NET MVC采用的是定义实体类(ViewModel)的方式,这让你觉得ASP.NET MVC的开发方式很费劲。
    其实这个问题是相对的,首先对于ASP.NET MVC来说,基本上每一个视图,都要定义一个ViewModel,这确实是一个让人觉得很无趣的地方,但反观它带来的好处:配合Visual Studio,可以在视图中使用智能提示(关于智能提示这里就不多展开了,用过都说好)!这样就可以避免php数组$data['xxx']中的魔幻字符串问题(例如应该写$data['teacher'],由于一不小心写错$data['teach'],带来了更多出错的可能,其实不觉得写这些字符串也是一件很无趣的事情吗?)。
    假如你觉得还是数组的方式好,其实ASP.NET MVC中也是可以做到的,可以在Controller类中使用TempData,例如:

    public ActionResult List()
    {
        TempData["hello"] = "world";
        return View();
    }
    

    这样视图层也可以通过TempData[]获取数据。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-16 17:08:17

    在.Net中,你的$data可以用类型Dictionary<string, string>或者Dictionary<string, object>来描述。
    一点都不方便,在IDE里面没有自动完成提示,没有静态检查。

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:08:17

    我用过很长时间的asp.net mvc,现在用phpyii,两者几乎完全一样的思想。所以不是说框架哪个更方便,而是语言哪个更方便。我个人也觉得php确实比C#要方便很多,就像你说的,数组灵活,json灵活,.net现在也有dynamic类型,但是不感冒,感觉生硬。另外一个抛弃微软的理由就是觉得太麻烦,太封闭,就是不愿意用windows,干嘛要用宇宙第一IDE(visual studio)?老子就是只愿意在linux下用vim,没别的。

    Antwort
    0
  • StornierenAntwort