5

Formumun bir bölümünü kısmi görünümde tuttuğumda, tüm form parçaları, kısmi görünümdeki form öğeleri dışında hiçbir engelleyici sözdizimi elde edemez.Html olmadan unobstrüktif sözdizimini engelleyin.BeginForm/Ajax.BeginForm kısmi görünümde

Kesintisiz sözdiziminin nasıl "uygulanacağını" bulmamın tek yolu, kısmi görünümün içinde başka bir formun başlamasıdır.

Görünüm:

@using (Ajax.BeginForm("SubmitHandler", new DefaultAjaxOptions())) 
{ 
    @Html.EditorFor(m => m.Name) 
    @Html.Partial("MyPartialView", Model) 
} 

PartialView:

@Html.TextBoxFor(m => m.SomeContent) 

Çıktı:

<input class="text-box single-line" data-val="true" data-val-required="This field is required." id="Name" name="Name" type="text" value=""> 
<input id="SomeContent" name="SomeContent" type="text" value="0"> 

adlı Yani sadece giriş elemanı engelsiz sözdizimi vardır ve kısmi görünümü değil sahiptir ...

Kısmi bir görünüm içinde, yeni bir forma başlamanızı gerektirmeyen, unobstrüktif sözdizimini uygulama yolu var mı?

cevap

4

Aslında daha iyi bir çözüm buldum! Asp.net mvc kodunda biraz kazı yaptım ve MvcForm sınıfı, tüm unobstrüktif doğrulama sözdizimini oluşturur. , Hala engelsiz sözdizimi geçerli olacaktır

@using(new MvcForm(ViewContext)) 
{ 
} 

yerine

@using(Html.BeginForm()) 
{ 
} 

ki, ama formu html etiketleri :)

+1

SİZE SIR oluşturmaz:

kullanmak eğer öyleyse GENIUS ARE. Teşekkür ederim. – Henry

+0

Eğer ile kısmi cshtml dosyasını yerleştirilmeli @Aravind Eğer ben de aynı sorunu – Aravind

+0

karşı karşıyayım çözmek nasıl oldu: @using (Html.BeginForm()) bu şekilde { içerik .. } sen

etiketine sarılmadan tüm doğru html özniteliklerini alacaktır :) –