我是MVC的新手,所以請對我輕鬆點。我被遞交了一個在MVC中開始的項目,並被告知要添加它。直到我找到需要來自兩種不同模型的數據的部分時,我才感覺很好。現在我被卡住了,我的老闆昨天要這樣做。如果可以的話請幫忙。MVC - 提交按鈕不能用於多個部分視圖
我有兩個部分視圖和一個提交按鈕的視圖。每個部分視圖使用不同的模型。視圖顯示用戶可以更改的屏幕上的信息。點擊提交按鈕。在控制器中,我想從兩種模型中訪問數據(用戶在屏幕上輸入的值)。現在,我甚至無法獲得提交按鈕來調用控制器。這是我需要立即幫助的部分,但我最終需要知道如何從控制器訪問這兩個模型的數據。
這裏是我想要做的基本思想是:
這是我的看法: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的一部分。點擊提交按鈕時,此方法未被擊中。我試過從另一個方法和ModelContract和ModelApplication(及其各種組合)中包含字符串ID變量,但我無法調用此方法。
[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");
}
難道CreateContract的POST版本工作之前?我猜想答案是否定的。它可能需要採用ModelContract的一個實例,以便從表單中獲取詳細信息。 – 2014-10-09 15:28:36
我會改變的第一件事是你的提交控制。我將它作爲一個按鈕而不是輸入。試一試,看看它是否開始調用你的控制器動作。 – Pheonyx 2014-10-09 15:28:59
Pheonyx:當我把它改成一個按鈕,我得到這個錯誤:「傳遞到字典的模型產品類型‘CarmelFinancialWeb.Models.ModelContract’的,但這種字典需要類型的模型項目「CarmelFinancialWeb.Models.ModelApplication 」「。 – boilers222 2014-10-09 15:46:47