我是新手MVC开发者,请手下留情。我接手了一个已经开始开发的MVC项目,被要求增加一些功能。在遇到需要来自两个不同模型的数据时,我陷入了困境。现在我无法继续开发,而我的老板希望这件事情昨天就完成。如果您能帮助我,那就太好了。
我有一个包含两个部分视图和一个提交按钮的视图。每个部分视图都使用不同的模型。这些视图显示屏幕上的信息,用户可以更改。然后点击提交按钮。在控制器中,我想访问来自两个模型的数据(用户在屏幕上输入的值)。现在,我甚至不能让提交按钮调用控制器。这就是我需要立即解决的问题,但我最终还需要知道如何从控制器访问两个模型的数据。
这是我想做的基本思路:
这是我的视图:CreateContract.cshtml
我有一个包含两个部分视图和一个提交按钮的视图。每个部分视图都使用不同的模型。这些视图显示屏幕上的信息,用户可以更改。然后点击提交按钮。在控制器中,我想访问来自两个模型的数据(用户在屏幕上输入的值)。现在,我甚至不能让提交按钮调用控制器。这就是我需要立即解决的问题,但我最终还需要知道如何从控制器访问两个模型的数据。
这是我想做的基本思路:
这是我的视图:CreateContract.cshtml
<div class="container-fluid">
@using (Html.BeginForm("CreateContract", "CreateContract", FormMethod.Post, new { @class = "form-horizontal " }))
{
<div id="PartialDiv">
@{
Html.RenderPartial("ApplicationPartialView", new CarmelFinancialWeb.Models.ModelApplication());
Html.RenderPartial("ContractPartialView");
}
</div>
<input id="btnCreateContract" type="submit" class="btn btn-primary" value="Save" name="CreateContract" />
}
</div>
这是控制器CreateContractController.cs的一部分。当视图打开并且正常工作时,将调用此方法。
[AuthorizeAdmin]
public ActionResult CreateContract(string ID)
{
ModelContract obj_Contract = new ModelContract();
obj_Contract.BuyerName = "MOCS";
return View(@"~/Views/CreateContract/CreateContract.cshtml", obj_Contract);
}
这是控制器CreateContractController.cs的一部分。当单击提交按钮时,此方法未被调用。我尝试包括来自其他方法的字符串ID变量以及ModelContract和ModelApplication(以及各种组合),但我无法使该方法被调用。
[AuthorizeAdmin]
[HttpPost]
public ActionResult CreateContract()
{
ModelApplication obj_App = new ModelApplication();
return View(@"~/Views/CreateContract/CreateContract.cshtml", obj_App);
}
这些是控制器中用于局部视图的方法。这些方法也没有被调用。
public PartialViewResult ApplicationPartialView(string ID)
{
ModelApplication obj_App = new ModelApplication();
if (ID != null && ID != "0" && ID != null && ID != "")
{
obj_App = objBllApplication.GetApplicationByID(int.Parse(ID));
}
return PartialView("CreateContractApplicationPartialView");
}
public PartialViewResult ContractContractPartialView()
{
ModelContract obj_Contract = new ModelContract();
obj_Contract.DealerID = "MOCS";
return PartialView("CreateContractContractPartialView");
}