Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何避免ASP.NET MVC的FormCollection?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何避免ASP.NET MVC的FormCollection?

Asp.net mvc 如何避免ASP.NET MVC的FormCollection?,asp.net-mvc,Asp.net Mvc,谈到ASP.NETMVC,我非常不爽 我正在看ASP.NET MVC外接程序中的初学者示例 我看到这样的东西是自动生成的: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(int id, FormCollection collection) { try { // TODO: Add update logic here return RedirectToAction("Index");

谈到ASP.NETMVC,我非常不爽

我正在看ASP.NET MVC外接程序中的初学者示例

我看到这样的东西是自动生成的:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
    try
    {
        // TODO: Add update logic here
        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}
我发现这很糟糕,因为我想使用实体框架来保存实体状态。我想要类似于:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Person person)
{
    try
    {
        // TODO: Add update logic here
        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}
请注意,我取出了FormCollection并将其替换为Person类。 -我希望这样可以避免使用魔术弦。 -保护实体国家。 -更明确

这可能吗


/与MVC混淆是的,尽管我强烈建议使用专用的表示/编辑模型,而不是使用实体。尽管如此,如果表单中有足够的信息来填充
Person

的所有不可为空的属性,那么您显示的内容将起作用,尽管我强烈建议使用专用的演示/编辑模型,而不是使用您的实体。尽管如此,如果表单中有足够的信息来填充
Person
的所有不可为空属性,那么您显示的内容将起作用。是的,这是可能的!表单的元素需要与您试图表示的模型的属性具有相同的名称。这个过程称为绑定,如果查看ModelBinder对象,您可以发现更多


有关更多信息,请查看以下问题:。

是的,这是可能的!表单的元素需要与您试图表示的模型的属性具有相同的名称。这个过程称为绑定,如果查看ModelBinder对象,您可以发现更多


想了解更多信息,请看这个问题:。

令人惊讶的是,我作为猜测发布的代码几乎按原样工作(幸运的猜测)。。。无论如何,我发现这篇文章也很有帮助:令人惊讶的是,我作为猜测发布的代码几乎按原样工作(幸运的猜测)。。。无论如何,我发现这篇文章也很有用:我确实意识到这很重要:P我确实意识到这很重要:P