MVC'ye yeni katılıyorum, lütfen bana kolay gelsin. MVC’de başlatılan bir projeye verildi ve buna eklenmesi söylendi. İki farklı modelden veriye ihtiyaç duyulan bir bölüme ulaşana kadar iyiydim. Şimdi sıkışıp kaldım ve patronum bunu dün yapılmasını istiyor. Eğer yapabilirsen lütfen yardım edin.MVC - Gönder tuşu çok parçalı görünümlerde çalışmıyor
İki kısmi görünüm ve bir gönderme düğmesi ile bir görünüm var. Kısmi görünümlerin her biri farklı bir model kullanır. Görünümler, kullanıcının değiştirebileceği ekranda bilgi görüntüler. Gönder düğmesine tıklanır. Kontrolörde, her iki modelden de verilere erişmek istiyorum (kullanıcının ekrana girdiği değerler). Şu anda, denetleyiciyi çağırmak için gönderme düğmesini bile alamıyorum. Bu, anında yardıma ihtiyacım olan bölümdür, ancak sonunda her iki modelin verisine denetleyiciden nasıl erişileceğini bilmem gerekecek.
İşte yapmak istediğim temel fikir:
Bu benim görünümdür: 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>
Bu kontrolör CreateContractController.cs bir parçasıdır. Görünüm açıldığında ve düzgün çalıştığında bu yöntem vurulur.
[AuthorizeAdmin]
public ActionResult CreateContract(string ID)
{
ModelContract obj_Contract = new ModelContract();
obj_Contract.BuyerName = "MOCS";
return View(@"~/Views/CreateContract/CreateContract.cshtml", obj_Contract);
}
Bu, CreateContractController.cs denetleyicisinin bir parçasıdır. Bu yöntem, gönder düğmesine tıklandığında vurulmuyor. Dize ID değişkenini diğer yöntemden ve her iki ModelContract ve ModelApplication (ve bunların çeşitli kombinasyonları) dahil etmeyi denedim, ancak bu yöntemin çağrılmasını sağlayamıyorum.
[AuthorizeAdmin]
[HttpPost]
public ActionResult CreateContract()
{
ModelApplication obj_App = new ModelApplication();
return View(@"~/Views/CreateContract/CreateContract.cshtml", obj_App);
}
Kısmi görünümler için denetleyicideki yöntemler. Bunlar da denilmiyor.
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 sonrası sürümünü mü Daha önce çalıştın mı? Cevabın hayır olduğunu tahmin ederdim. Belki de formun ayrıntılarını alabilmesi için ModelContract örneğini alması gerekir. –
Değiştireceğim ilk şey gönderme kontrolünüzdür. Bir giriş yerine bir düğme olarak olurdu. Bunu deneyin ve denetleyici eyleminizi çağırmaya başlayıp başlamadığına bakın. – Pheonyx
Pheonyx: Düğmeye değiştirdiğimde bu hatayı alıyorum: "Sözlüğe aktarılan model öğesi," CarmelFinancialWeb.Models.ModelContract "türündedir, ancak bu sözlük 'CarmelFinancialWeb.Models.ModelApplication türünde bir model öğesi gerektirir. '." – boilers222