5

Khi tôi đặt một phần của biểu mẫu trong một phần xem, tất cả các phần biểu mẫu nhận cú pháp không bị cản trở ngoại trừ các phần tử biểu mẫu trong chế độ xem từng phần.Cú pháp không mang tính đột phá mà không có Html.BeginForm/Ajax.BeginForm trong chế độ xem một phần

Cách duy nhất tôi tìm thấy cách "áp dụng" cú pháp không có cấu trúc là bằng cách bắt đầu một biểu mẫu khác bên trong chế độ xem một phần.

Xem:

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

PartialView:

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

Output:

<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"> 

Vì vậy, chỉ có các yếu tố đầu vào từ View có cú pháp unobstructive và xem một phần có không ...

Có cách nào để áp dụng cú pháp không có cấu trúc bên trong một khung nhìn từng phần, mà không yêu cầu bạn phải bắt đầu một biểu mẫu mới?

Trả lời

4

Tôi thực sự đã tìm thấy giải pháp tốt hơn! Đã đào một chút trong mã mvc asp.net và lớp MvcForm tạo ra tất cả cú pháp xác thực không có cấu trúc.

vì vậy nếu bạn sử dụng:

@using(new MvcForm(ViewContext)) 
{ 
} 

thay vì

@using(Html.BeginForm()) 
{ 
} 

nó vẫn sẽ áp dụng các cú pháp unobstructive, nhưng sẽ không tạo ra các thẻ dạng html :)

+1

BẠN SIR, Là một GENIUS. Cảm ơn bạn. – Henry

+0

làm thế nào bạn giải quyết nó, tôi cũng đang phải đối mặt với cùng một vấn đề – Aravind

+0

@Aravind bạn nên quấn tập tin cshtml một phần của bạn với: @using (Html.BeginForm()) { nội dung .. } theo cách này bạn sẽ nhận được tất cả các thuộc tính html chính xác mà không cần nó được gói trong một thẻ

:) –

Các vấn đề liên quan