سؤال

حسنا, كل شيء 'عمليا' العمل مع ما أنا أحاول إنجاز و مرة أخرى أنا متأكد من أن هذا هو شيء غبي, ولكن أنا لا يمكن معرفة كيفية القيام بذلك شيء واحد.

لدي تعديل شكل كيان ، يتيح القول سيارة.هذا 'السيارة' يمكن أن يكون 0 - العديد من الركاب.لذا على تحرير النموذج ، لدي كل المجالات السيارة ، ثم عرض القائمة عرض كل الركاب (الجزئي).أود أيضا أن يكون إضافة جديدة الركاب' زر من شأنها أن تجعل جديد منظر جزئي يسمح لك بدخول الركاب.هذا وقد إلغاء الرابط و إضافة زر إلى تقديم شكل اياكس.عند إضافة أحد الركاب الركاب إضافتها تلقائيا إلى قائمة, ولكن أنا في حاجة إلى إدخال الركاب شكل للذهاب بعيدا.لقد حاولت استخدام onSuccess و onComplete وظائف لإخفاء div الذي شكل في, ولكن كلا تجعل مجرد منظر جزئي عناصر HTML (شاشة بيضاء ، النص) وليس partialView في سياق الصفحة بأكملها.

المصادر:1) تحرير الرئيسية عرض

    <script type="text/javascript">
    Function hideForm(){
        document.getElementById('newPassenger').style.display = 'none';
    }

</script>
<h2>Edit</h2>

<%-- The following line works around an ASP.NET compiler warning --%>
<%= ""%>

<%Html.RenderPartial("EditCar", Model)%>
<h2>Passengers for this car</h2>
<%=Ajax.ActionLink("Add New Passenger", "AddPassenger", New With {.ID = Model.carID}, New AjaxOptions With {.UpdateTargetId = "newPassenger", .InsertionMode = InsertionMode.Replace})%>
<div id="newPassenger"></div>
<div id="passengerList">
    <%Html.RenderPartial("passengerList", Model.Passengers)%>
</div>
<div>
    <%= Html.ActionLink("Back to List", "Index") %>
</div>

2) AddPassenger الرأي.إلغاء الرابط أدناه هو الفعل الذي يعود على شيء ، وبالتالي إزالة المعلومات في شعبة.

<%  Using Ajax.BeginForm("AddPassengerToCar", New With {.id = ViewData("carID")}, New AjaxOptions With {.OnSuccess = "hideForm()", .UpdateTargetId = "passengerList", .InsertionMode = InsertionMode.Replace})%>   
    <%=Html.DropDownList("Passengers")%> 
    <input type="submit" value="Add" />
    <%=Ajax.ActionLink("Cancel", "CancelAddControl", _
                                            New AjaxOptions With {.UpdateTargetId = "newPassenger", .InsertionMode = InsertionMode.Replace})%><% end using %>
هل كانت مفيدة؟

المحلول

موافق -- برزت من ذلك, أعتقد أنه كان أيضا في وقت متأخر الليلة الماضية.حتى هنا هو الجواب ، فإنه في الواقع تبين أن بعض القضايا الصغيرة وصولا إلى واحد.

  1. وظيفة hideForm() في جافا سكريبت يجب أن تكون وظيفة hideForm () ، أي العواصم.أيضا تستخدم في الكتابة وظائف تحكم أعتقد.
  2. كنت تستخدم "hideForm()" في OnSuccess سمة لا "hideForm" - doh.
  3. ربما كنت لا ترغب في إخفاء div عند النقر فوق إضافة جديدة الركاب الرابط مرة أخرى div لن يتم عرض.تغيرت hideForm دالة تعيين الخاصية innerHTML من الدرجة ".

شكرا مرة أخرى دارين للحصول على المساعدة الخاصة بك, كنت أحاول أن جعل أكثر من ذلك مما اتضح أن يكون.

نصائح أخرى

تأكد من أنك قمت المشار إليه على حد سواء MicrosoftAjax.js و MicrosoftMvcAjax.js البرامج النصية في الصفحة الخاصة بك.والسبب في الحصول على إطلالة جزئية محتويات (شاشة بيضاء ، النص) يمكن أن يكون خطأ في البرنامج النصي الذي يمنع اياكس من تنفيذ بشكل صحيح.نظرة مع الحرائق إذا كان هناك بعض الأخطاء أثناء التنفيذ.

بقدر ما تخفي شكل قلق هل يمكن استخدام OnSuccess رد:

<% Using Ajax.BeginForm("AddPassengerToCar", 
    New With { .id = ViewData("carID")}, 
    New AjaxOptions With {
        .UpdateTargetId = "passengerList", 
        .InsertionMode = InsertionMode.Replace,
        .OnSuccess = "hideForm"
}) %>

على hideForm وظيفة جافا سكريبت سوف يعدم إذا اياكس الاتصال ينجح وسوف إخفاء المطلوب div.

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