Domanda

Io lavoro in VS2010, ASP.NET MVC 2 del progetto. Il progetto è stato completato, resta da essere rivelato al di IIS, ma sorgono i problemi. richiesta AJAX che chiama il metodo di controllo non funziona su IIS, ma il lavoro in VS. Non so se qualcosa deve essere incluso in particolare per il supporto di IIS di AJAX? Ho bisogno di aiuto e come inoltrare la richiesta e l'URL viene interpretato come richiesta MVC con i parametri? Io uso di IIS 5.

È stato utile?

Soluzione

Hai hardcoded gli URL nel tuo javascript, non è vero:

$.post('/home/index', function(result) {

});

invece di utilizzare aiutanti URL:

$.post('<%= Url.Action("index", "home") %>', function(result) {

});

Il motivo per il codice non funziona quando è stato distribuito l'applicazione in IIS è perché ora avete una directory virtuale, in questo modo: http://example.com/myapplication/home/index. Se si hardcode l'URL invece di utilizzare aiutanti URL per generare esso si finisce con una richiesta di AJAX per http://example.com/home/index che naturalmente non funziona come vi manca il nome dell'applicazione.

Quando si lavora a livello locale non esiste una directory virtuale se si utilizza Visual built-in server web e gli sguardi URL come questo di Studio:. http://locahost:1234/home/index

Personalmente quello che mi sento di raccomandare voi è quello di usare semplicemente HTML aiutanti per generare elementi DOM quali <form> e <a> e poi discretamente AJAXify loro.

Per esempio si potrebbe avere la seguente forma:

<% using (Html.BeginForm("SomeAction", "SomeController")) { %>
    ... some input fields
<% } %>

che si poteva AJAXify in questo modo:

$(function() {
    $('form').submit(function() {
        $.post(this.action, $(this).serialize(), function(result) {
            // TODO: process the results
        });
        return false;
    });
});

Scopri come non siamo più hardcoding eventuali URL nei nostri file javascript? Ora tutto funziona, non importa dove si ospitano l'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top