如何在MVC 5 CRUD操作中使用Create with filtering?

时间:2016-05-25 10:33:56

标签: c# asp.net-mvc-5 crud

我有一个Customer表和Approval表,如下所示。我创建了我的客户控制器和视图及其工作。在CustomerView.cshtml中,用户无法看到CustActive列。

现在我需要创建一个带过滤的ApprovalController。在Approval.cshtml页面中,当我单击“创建”按钮时,我需要加载包含客户名称和姓氏的组合框CustActive = False。然后,当我从ComboBox中选择一个客户时,我想创建将激活以进行编辑的CustIdManagerNameManagerSurname等列。编辑后,我需要保存审批表的数据,并在客户表中为CustActive列插入真值。

我该怎么做?

CUSTOMER TABLE

CustId
Name
Surname
CustActive

APPROVAL TABLE

AppId
CustId
ManagerName
ManagerSurname

亲切的问候

1 个答案:

答案 0 :(得分:1)

好的,您需要在APPROVAL TABLE中插入costumer属性吗? 现在,在您创建了costumer之后,您已将active定义为false,这没关系,在此之后您已经编写了这样的APPROVAL控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "AppId,CustId,ManagerName,ManagerSurname")] Approval approval, string id)
{
var costumer = await db.Costumers.SingleAsync(x => x.CustId == id);
if (ModelState.IsValid)
{
    approval.CustId = id;
    CUSTOMER model = new CUSTOMER();
    model.CustActive = true;
    db.Entry(model).State = EntityState.Modified;
    db.Categories.Add(category);
    await db.SaveChangesAsync();
    return RedirectToAction("Index");
}

return View(approval);

}