سؤال

شفرة:

<% using (Ajax.BeginForm("GetResourcesByProject", "CreateRequest", new AjaxOptions { UpdateTargetId = "ResourceListDiv"}))
{
 Response.Write(Html.DropDownList("SelectProject", Model.ProjectList, "Select Project", new { onchange = "this.form.submit();" }));
} %>

عندما أقوم بتشغيل الصفحة ، أحصل على إجراء وحدة تحكم صحيحة للتشغيل مع البيانات الصحيحة في مجموعة النماذج:

public ActionResult GetResourcesByProject(FormCollection formCollection)
{
    var resourceModels = (from project in POTSModel.ProjectList
                          where project.Id == Convert.ToInt32(formCollection["SelectProject"])
                          select project).First().Resources;

    return PartialView("ResourceList", resourceModels);
 }

إنه يعمل بشكل جيد من Ajax.ActionLink مثل هذا:

<%= Ajax.ActionLink("Select", "GetResourcesByProject", "CreateRequest", new { projectId = item.Id }, new AjaxOptions { UpdateTargetId = "ResourceListDiv" })%>

عندما يحدث المنشور ، انتقلت إلى صفحة جديدة بدلاً من البقاء على الصفحة الحالية وتحديث محتويات DIV.

شكرًا.

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

المحلول

إرسال () ربما لا تؤدي إلى تشغيل ajax.beginform ، وبالتالي تتم معالجتها كمشاركة معتادة. انظر هذا على سبيل المثال: أحداث jQuery إضافية تقدم الخاص بي ajax.beginform. بدلاً من ذلك ، أضف زر إرسال (ربما مخفي) واتصل بـ .click ().

نصائح أخرى

ال using(Ajax.BeginForm(...)) لا يعمل عندما يحتوي على ملف Html.RenderPartial.

هل يعمل مع Internet Explorer 7. لدي بعض المشكلات مع IE7 في قائمة DropDownlist المتتالية. Ajax.beginform لا يسترجع النموذج (request.form ["myidform"] قيمة فارغة) في IE7 ، في جميع متصفح الويب الآخرين الذي يعمل (بما في ذلك IE8)!

            <% using (Ajax.BeginForm("profileChanged", "profiles", new AjaxOptions() { UpdateTargetId = "customer", OnComplete = "SetHiddenProfile" }, new { @class = "filtersForm" }))
          {   %>                           
        <p id="customer"> 
            <% Html.RenderPartial("FilterContracts"); %>
        </p>
        <%} %>

أدعو قاعدة البيانات لإلغاء القائمة المنسدلة في الإجراءات البروفيرة وإعادة طريقة عرض جزئية ("FilterContracts").

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