2009-10-21 22 views
6

कोड:Ajax.BeginForm UpdateTargetId DropDownList साथ काम नहीं करता

<% 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 की सामग्री को अद्यतन करना।

धन्यवाद।

उत्तर

5

सबमिट() शायद अजाक्स को ट्रिगर न करें। बेगिनफॉर्म, और इसलिए इसे सामान्य पोस्ट के रूप में संसाधित किया जाता है। उदाहरण के लिए इसे देखें: Additional jQuery events submitting my Ajax.BeginForm। वैकल्पिक रूप से सबमिट बटन जोड़ें (शायद छुपाएं) और इसे क्लिक करें .click()।

+1

छिपा सबमिट बटन पर पूरी तरह से काम करता है: \t \t \t <% का उपयोग कर (Ajax.BeginForm ("GetResourcesByProject", "CreateRequest", नई AjaxOptions {UpdateTargetId = "ResourceListDiv"})) \t \t \t \t { \t \t \t \t \t Response.Write (HTML.DropDownList ("SelectProject", Model.ProjectList, "प्रोजेक्ट का चयन करें", नया {onchange = "document.getElementById ('projectSubmit') क्लिक करें();"})); \t \t \t \t \t%> \t \t \t \t \t \t \t \t \t \t <% \t \t \t \t}% > थोड़ा बदसूरत और cludgy लेकिन यह काम करता है। बमर कि सामान्य form.submit() AJAX फ़ॉर्म को हिट नहीं करता है। सहायता के लिए धन्यवाद। – Tyler

0

क्या यह इंटरनेट एक्सप्लोरर 7 के साथ काम करता है। मुझे ड्रॉपडाउनलिस्ट को कैस्केड करने में आई 7 के साथ कुछ समस्या है। 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> 
     <%} %> 

मैं profileChanged कार्रवाई में लटकती पॉप्युलेट और ("FilterContracts") एक आंशिक दृश्य वापस जाने के लिए डेटाबेस कहते हैं।

1

using(Ajax.BeginForm(...)) काम नहीं करता है जब इसमें Html.RenderPartial होता है।

संबंधित मुद्दे