MVC Partial View Hk.
-
Selam müridcanlar,
MVC de bir sayfada 2 adet partial view im var. ikisi içinde ayrı model kullanma konusunu çözdüm lakin şöyle bir şeye ihtiyacım var. Kullanıcı aşağıdakilerden birini seçecek. şirket seçerse şirket partialview i görünür olacak ve buna binaen şirket için insert yapan metodumu ajax la çağıracağım. Şahıs seçerse Şahıs partialview i görünür olacak ve şahıs için insert yapan metodu çağıracağım.
Bunun için jquery le nasıl bir yapı kurmalıyım ya da MVC içerisinde bu işimi çözebileceğim bir yapı var mıdır?
-
up bi bakın lo
-
Şöyle bişi yapabilirsin. direk şahısın ve şirketin click eventlarında kendi view'ını load etsen ?
$( "#content" ).load( "view/partialview" );
iki partialda da form oldugunu düşünüyorum. formlarında submit eventlarını js de ayrı ayrı yazdın mı tamamdır.
-
Aklıma ilk gelen; partial viewlerin ikisini de ayrı divler içerisinde yükleyip, seçili butona göre jquery ile hide-show yapabilirsin.
Şirket veya şahıs seçilince partial viewlerde neler olduğunu bilmiyorum. Biraz daha açarsan daha optimum çözümler çıkabilir.
-
FCN bunu yazdı
Şöyle bişi yapabilirsin. direk şahısın ve şirketin click eventlarında kendi view'ını load etsen ?
$( "#content" ).load( "view/partialview" );
iki partialda da form oldugunu düşünüyorum. formlarında submit eventlarını js de ayrı ayrı yazdın mı tamamdır.
deniyorum hocam sanırım bu işimi çözecek benim..
-
KodlayanAdam bunu yazdı
Aklıma ilk gelen; partial viewlerin ikisini de ayrı divler içerisinde yükleyip, seçili butona göre jquery ile hide-show yapabilirsin.
Şirket veya şahıs seçilince partial viewlerde neler olduğunu bilmiyorum. Biraz daha açarsan daha optimum çözümler çıkabilir.
hocam bir seçim anında sadece bir tanesinin render edilmesi daha güzel bir çözüm olacak sanırım.
Şöyle özetleyeyim;
Şirket seçtiğinde vergi no soracak, Şahıs seçtiğinde tc kimlik no soracak.yani her iki seçiminde model i farklı..
-
en kolay çözüm load bana göre 2. bir çözümse bir tane viewbag değişkeni kullanırsın flag tablardan herhangi birine click lendiğinde server a gönderirsin resultında ise viewbag değişkenini cshtml de aşağıdaki gibi kontrol eder kullanabilirsin.
@{
if(viewbag.asd == true)
Html.RenderAction("Category","Home");
}
-
sorunu tam anlamadım ama anladığım kadarı ile şunları deneyebilirsin.
Bir butona tıklandığında dilersen asd.com/views/firma şeklinde yönlendirirsin.
İlla ajax ile olacaksa ajaxta session ile bit php sayfası çağırırsın ve ekrana
$("#bilgi").html("gelen veri");
dersin o views deki bilgi basar.
Konuyu tam olarak anlamdığımdan bu şekilde yardımcı olmaya çalışıyorum.
-
Partial zaten render edip html olarak dönüyor view'ını
Şöyle bişey yapabilirsin
View :
<div id="select-partial"> <a href="#" class="link-item" data-url="person">Şahıs</a> <a href="#" class="link-item" data-url="company">Şirket</a> </div> <div id="selected-content"> <div></div> </div> @section Scripts{ <script> $('#select-partial .link-item').on('click', function (e) { e.preventDefault(); var url = $(this).data('url'); console.log(url); $.get(url, function (data) { $('#selected-content div').replaceWith(data); }); }); </script> }
_Company.cshtml :@model String
<div>
@Model
</div>_Person.cshtml :
@model String
<div>
@Model
</div>Controller :
public ActionResult Company()
{
return PartialView("_Company", "Tahribat");
}public ActionResult Person()
{
return PartialView("_Person", "SinusX");
}Aynı controller'ı varsaydığım için url sadece action name'i içeriyor. Url'i değiştirerek istediğin controllerdan çekebilirsin
-
efecan123 bunu yazdı
en kolay çözüm load bana göre 2. bir çözümse bir tane viewbag değişkeni kullanırsın flag tablardan herhangi birine click lendiğinde server a gönderirsin resultında ise viewbag değişkenini cshtml de aşağıdaki gibi kontrol eder kullanabilirsin.
@{
if(viewbag.asd == true)
Html.RenderAction("Category","Home");
}
load a bakıyorum hocam bir çözüm ürettim paylaşıcam..
-
SinusX bunu yazdı
Partial zaten render edip html olarak dönüyor view'ını
Şöyle bişey yapabilirsin
View :
@section Scripts{ // }
_Company.cshtml :@model String
@Model_Person.cshtml :
@model String
@ModelController :
public ActionResult Company()
{
return PartialView("_Company", "Tahribat");
}public ActionResult Person()
{
return PartialView("_Person", "SinusX");
}Aynı controller'ı varsaydığım için url sadece action name'i içeriyor. Url'i değiştirerek istediğin controllerdan çekebilirsin
hocam benzer bir çözüm ürettim tam olarak bitireyim buradan paylaşacağım.
teşekkürler