سؤال

أعقد من Viewusercontrol (ملف .SCX) في عرض:

<% Html.RenderPartial("Comments", Model.Comments); %>

يعرض viewusercontrol هذه التعليقات المرتبطة على إدخال. أود أن يعرض هذا السيطرة نموذجا أيضا، لذلك يمكن للمستخدمين من طلبي المساهمة.

كيف ستضيف نموذجا إلى Viewusercontrol والتعامل معها بعد إعادة النشر؟

هل كانت مفيدة؟

المحلول

فقط أضف النموذج الموجود فيه بنفس الطريقة التي ستستخدمها على أي صفحة. في MVC، لا يعتمد النموذج على هذا النحو - فهو ببساطة يقدم نفسه ومحتواها (عناصر تحكم الإدخال) عبر وظيفة HTTP إلى عنوان URL.

ما عليك سوى إنشاء إجراء في وحدة التحكم الخاصة بك (وبالتالي عنوان URL) الذي سيقوم النموذج بنشره ويفعله أي نشاط مطلوب هناك ...

نصائح أخرى

لا توجد postaback، مثل في ASP.NET القياسية، يمكن أن تكون هناك علامة نموذج فقط التي تنشر البيانات إلى بعض URL (وحدة التحكم / الإجراء).
داخل عنصر تحكم المستخدم الجزئي الخاص بك، اكتب:

<form action="controller/actionname" method="post">
<input type="text" name="inputText" />
<input type="submit" value="Post data to server" />
</form>

في MVC، فقط إدخال نوع = "إرسال" مشغلات النموذج إرسال. في Standard ASP.NET Webforms، يمكنك الحصول على العديد من LinkButtons، الأزرار، ... ولكن تحت الغلاف، فإنهم يقومون بتشغيل هذه النقر بسيطة على نوع الإدخال = "إرسال" من خلال حدث JavaScript. يمكن لنموذج واحد نشر البيانات إلى عنوان URL واحد فقط (وحدة تحكم / إجراءات)، ولكن يمكن تغييره مع JavaScript (كما نرى في مصدر HTML ل "OLD" WebForms ASP.NET).

ثم، في وحدة التحكم، يمكنك التعامل مع بيانات البريد:

[AcceptVerb(HttpVerb.Post)] // optionally 
public ActionResult ActionName(string inputText) ...

مثل الآخرين قد أجابوا بالفعل، يمكنك ببساطة تقديم نموذج وتتعامل معه بإرساله باستخدام ActionResult.

على سبيل المثال، إذا تم تقديم النموذج الخاص بك (والذي يمكن تقديمه في أي مكان في موقعك) إلى http://www.yoururl.com/home/save., ، يمكنك إنشاء طريقة ActionResult المسماة حفظ على وحدة تحكم المنزلية للتعامل مع الإرسال (طريقة مرحلة ما بعد / احصل على المرجح).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top