Asp.net mvc 从客户端回发复杂对象

Asp.net mvc 从客户端回发复杂对象,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我正在使用ASP.NETMVC和实体框架。我将向客户端传递一个复杂的实体,并允许用户修改它,然后将其发布回控制器。但我不知道如何做到这一点,也不知道客户端实体是否会在从对象上下文分离时丢失EF的关系跟踪。该实体将被分离。您需要再次获取实体,更新属性,然后提交更改。或者,您可以重新附加实体,但在处理同时附加的多个相关实体时,这可能会很棘手。如果您是这样的话,请查看。ASP.NET MVC能够对复杂对象进行模型绑定,而且非常擅长。一种简单的方法是将视图字段命名为与对象属性相同的名称。这样,在表单发布

我正在使用ASP.NETMVC和实体框架。我将向客户端传递一个复杂的实体,并允许用户修改它,然后将其发布回控制器。但我不知道如何做到这一点,也不知道客户端实体是否会在从对象上下文分离时丢失EF的关系跟踪。

该实体将被分离。您需要再次获取实体,更新属性,然后提交更改。或者,您可以重新附加实体,但在处理同时附加的多个相关实体时,这可能会很棘手。如果您是这样的话,请查看。

ASP.NET MVC能够对复杂对象进行模型绑定,而且非常擅长。一种简单的方法是将视图字段命名为与对象属性相同的名称。这样,在表单发布给您的操作方法中,您只需要将复杂对象作为参数。例如:

<% using(Html.BeginForm()) { %>

    <%= Html.TextBox("Property1") %>
    <%= Html.TextBox("Property2") %>
    <%= Html.TextBox("Property3") %>
    <%= Html.TextBox("Property4") %>
    <%= Html.CheckBox("PropertyBool") %>
    <%= Html.TextBox("Property5") %>

<% } %>

这是一个相当简单的示例,因为您可以在视图中为对象的相应属性使用不同的表单控件。如果您的对象非常复杂,您可以随时为其编写自己的模型活页夹,并超越默认的模型活页夹。

您是说您在一个页面上显示了100个问题的列表?我希望你没有那样做。首先,这对用户不是很友好。它涉及大量向下滚动,用户可能会迷路,容易出错,如果出现问题,他必须重新进行

更好的方法是一次问一个或几个问题。带有用于在它们之间移动的下一个/上一个按钮


您可以让自己变得更容易,忘记回发,走AJAX的路——用AJAX的方式向某个Json服务发出post请求。并在每个问题后保存进度,这样,如果出现问题,用户可以稍后从他停止的地方继续。它将更易于维护、更快、更友好。

是的,的确如此。但我现在发布的是一份包含100多个问题的大型问卷。它们包含在一个列表中。我怎样才能把它寄回去?谢谢查看queen3的链接,看看绑定到简单类型集合和绑定到自定义类型集合。如果您相应地命名表单元素,您可以接受一个列表作为参数,MVC将自动对该列表进行模型绑定。为了防止您开始操作Javascript对象并希望将其发送到服务器,有一个简单的jQuery插件,它还可以发布日期等。。因此,将复杂的Javascript对象发送到控制器操作:
public ActionResult Index(ComplexObject complexoObject)
{

}