如何在MVC中更新模型

时间:2009-07-05 23:25:26

标签: asp.net-mvc

我想知道如何在ASP.NET MVC框架中保持Model的常量值。就像通过视图向模型添加内容一样。你回到控制器中的一个动作,但你在哪里保留模型?它在控制器中是私有的吗?或者它是否从视图来回传递给控制器​​,因为如果它变大,那么你来回传递大量数据来添加/删除模型中的单个项目。

还有什么小例子可以说明这一点吗?

由于

4 个答案:

答案 0 :(得分:0)

你指的是什么?你是说一个数据库表加载到一个对象,如Ruby on Rails的ORM - 通常'Model'是一系列接口或域对象,它们将数据加载到数据库中的对象中......或者更简单地说就是数据库时期。

请更具体。有许多MVC框架和许多不同类型的“模型”

答案 1 :(得分:0)

我认为你应该看看像NerdDinner这样的ASP.NET MVC tuturial(来自“Professional ASP.NET MVC 1.0”)。 Scott Guthrie在他的网站上发布了html version of the tutorial。这是他们在教程中构建的一个相当简单的站点,并且是ASP.NET MVC的一个很好的介绍(在我看来)。

还有一些good tutorials on the ASP.NET site

希望这些可以帮助您使用.NET MVC,它是一个很棒的框架!

答案 2 :(得分:0)

您可以将模型传递给页面,然后可以在控制器中使用UpdateModel(型号名称)。

模型中的每个成员都必须是具有getter和setter的属性。

如果您需要将值保持在状态之外,您可以在页面中将数据保存在隐藏字段中。

如果您在使用UpdateModel时遇到问题,则可以在控制器中使用以下内容;

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyAction(int? id, FormCollection collection)
{
    string commentText = collection["myFieldName"];
}

这通常会从模型中获取您的值。

希望这就是你所要求的。

答案 3 :(得分:0)

将模型视为数据传输对象。在列表中,仅显示或编辑页面,将其作为单个对象或对象列表从数据层中拉出。控制器将它传递给视图并显示它。

在插入的情况下,新的数据传输对象在回发后被实例化,并使用发布的值进行更新。然后发送回数据层以进行持久化。

在编辑的情况下,它来自HTTP GET请求上的数据层,用于预填充HTML表单。然后在回发后,数据传输对象将使用发布的值进行更新,并发送回数据层以保持持久性。

绝对检查NerdDinner或Stephen Walther的样本。