Frage

Code:

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

Wenn ich die Seite ausführe, erhalte ich die korrekte Controller -Aktion, um die richtigen Daten in der Formularsammlung auszulösen:

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);
 }

Es funktioniert gut aus einem Ajax.ActionLink wie folgt:

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

Wenn der Beitrag stattfindet, navigierte ich zu einer neuen Seite, anstatt auf der vorhandenen Seite zu bleiben und den Inhalt der DIV zu aktualisieren.

Vielen Dank.

War es hilfreich?

Lösung

reichen () wahrscheinlich nicht ajax.beginform auslösen und so wird es wie üblich verarbeitet. Sehen Sie dies zum Beispiel: Zusätzliche jQuery -Ereignisse, die meine Ajax.Beginform einreichen. Alternativ addieren Sie die Schaltfläche Senden (möglicherweise versteckt) und rufen Sie seine .click () an.

Andere Tipps

Das using(Ajax.BeginForm(...)) funktioniert nicht, wenn es a enthält Html.RenderPartial.

Funktioniert es mit Internet Explorer? Die Ajax.BeginForm ärkte nicht das Formular (Request.Form ["MyIdform"] ist leer) Wert in IE7, in allen anderen Webbrowser funktioniert es (einschließlich IE8)!

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

Ich rufe die Datenbank auf, um die Dropdown -Liste in der Profile -Aktion zu füllen und eine Teilansicht zurückzugeben ("Filterconcorts").

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top