ASP.NET MVC Request.IsAjaxRequest() ist immer false

ju007

Grünschnabel
Hallo zusammen,

ich programmiere zurzeit asp.net mvc Seite.
Ich versuche auf dieser Site AJAX einzubinden.
Bei Überprüfung, ob das eine Ajax-Anfrage ist, kommt bei mir immer false als Ergebnis. ->
Im Controller "Edit" ist die Abfrage "if (Request.IsAjaxRequest())" immer false.
Ich suche den Fehler schon seit paar Tagen , aber alles erfolglos.

Kann mir jemand helfen

Ich verwende asp mvc 2 und Visual Studio 2008


Das ist meine View

Code:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<%@ Register Assembly="System.Web.Ajax" Namespace="System.Web.UI" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Edit
</asp:Content>
<asp:Content ContentPlaceHolderID="Header" runat="server">

     <script src="<%=Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
     <script src="<%=Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
     
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        <%= ViewData["title"] %>
    </h2>

    <script type="text/javascript">

        function ajaxSuccess() {
            alert('Success');
        }
        }
        
    </script>

    <p>
        <% = Html.ValidationSummary()%>
    </p>
    <% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "ajaxDiv", OnSuccess = "ajaxSuccess" }))
       {%>

    <div id="ajaxDiv">
        <%Html.RenderPartial("EditForm"); %>
    </div>

   </asp:Content>



Das meine Partial View "EditForm"

Code:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<table border="0" cellspacing="0" cellpadding="0" width="40%">
    <tr>
        <th>
            Name
        </th>
        <td>
            <% = Html.TextBox("Name", null, new { style = "width: 400px" })%>
        </td>
    </tr>
    <tr>
        <th>
            Beschreibung
        </th>
        <td>
            <% = Html.TextArea("Description", new { @class = "TextAreaLong" })%>
        </td>
    </tr>
    <tr>
        <td colspan="2">
            <input type="submit" value="Speichern" />
        </td>
    </tr>
</table>



Und das mein Controller

Code:
  [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Edit(RoleInfo _role)
        {

            ViewData["Title"] = "Rolle bearbeiten";
          
            if (ModelState.IsValid)
            {
                Role role = new Role();
                role.ID = _role.ID;
                role.Name = _role.Name;
                role.Description = _role.Description;

                _dataManager.Role.UpdateRole(role);

                if(Request.IsAjaxRequest())
                {

                    return PartialView("EditForm");

                   
                }

                return RedirectToAction("RoleList");
                
            }

            if (Request.IsAjaxRequest())
            {

                return PartialView("EditForm");

            }

            return View();



        }
 
Hi,

ich habe das gleiche Problem und konnte bisher auch keine Lösung finden.

Merkwürdiger Weise funktionieren die Ajax-Aufrufe wenn ich die Anwendung im internen Host vom Visiual-Studio 2010 starte. Wenn das ganze aber im IIS7 hoste funktionieren die Aufrufe nicht.

Hast Du schon irgendwelche Hinweise gefunden?
 
Zurück