显示带有孩子的模型,允许用户对孩子进行更改

时间:2015-04-28 18:34:16

标签: c# jquery asp.net asp.net-mvc

我使用Asp.Net MVC 5和EF 6。

我有一个模型,让我们称之为" Checkout"。它具有以下属性:

int BuyerId
List<CheckoutItem> Items

CheckoutItem具有以下属性:

int ItemId
decimal Price
bool IsPaid

我希望有一个视图首先显示EditorFor - &gt; BuyerId。当用户输入BuyerId时,视图应该使用Checkout数据进行更新,这些项目显示在列表中,用户可以在其中单击&#34;删除&#34;链接从当前事务中删除该项目(View的当前模型)。当用户单击提交按钮时,我希望控制器使用IsPaid = true更新Checkout.Items列表中的项目。

我理解所有这些所需的逻辑。我遇到的问题是这一切是如何与MVC上下文一起工作的。

目前我有Checkout.cshtml,其模型是买方(由BuyerId访问),其中有一个供用户输入BuyerId的文本框和一个空的<div>。在.focusout上使用jquery我使用.ajax来调用控制器并返回一个局部视图,&#34; _CheckoutDetail&#34;。 _CheckoutDetail使用Checkout Model显示模型中的信息。

目前_CheckoutDetail有一个表单,但是当我从局部视图提交时,绑定不起作用。

如果这一切都清楚我想要做的事情,我的问题是,实现这一目标的最佳方法是什么?我期望我的部分视图将其模型发布回控制器,但它不起作用。我试过了两次

public async Task<ActionResult> CheckoutDetails(CheckoutViewModel checkout)

public async Task<ActionResult> CheckoutDetails([Bind(Include = "BuyerId,Items")] CheckoutViewModel checkout)

在我的控制器定义中。在这两种情况下,我都会收到一条消息&#34;名称&#39;结帐&#39;在当前上下文中不存在&#34;。

感谢您的帮助。

0 个答案:

没有答案