2010-12-05 5 views
0

Ich arbeite an ASP.NET MVC-Anwendung. Auf meiner Masterseite habe ich ein Formular, das ich an eine andere Aktion senden muss. Unten ist der entsprechende Code:Angeben von Pfaden zu Aktionen in ASPX-Seiten MVC

<form id="form1" action="/Stock/PerformSearch" method="post" runat="server"> 
//some other stuff   
</form> 

Wie man sehen kann, wenn ich das Formular abschicken ich auf die „PerformSearch“ Aktion in den „Auf“ Controller gehen will. Dies funktioniert gut auf meinem lokalen Rechner-Hosting. Aber wenn ich versuche, die Site auf dem Server zu veröffentlichen, erkennt MVC diesen Pfad nicht mehr. Meine Frage ist, wie ich die Pfade zu Aktionen in ASPX-Seiten angeben soll, so dass es sowohl lokal als auch live funktioniert. Ich weiß, dass ich die "Verwendung von Html.BeginForm" verwenden kann, und das wird das Problem lösen, aber ich möchte es wirklich nicht aus anderen Gründen verwenden und auch, ich muss immer Pfade zu Aktionen in vielen anderen Tags angeben Formular-Tag

By the way, den Weg zu ändern, um "http://cse454db.cs.washington.edu/BestBet/Stock/PerformSearch"

wird es seit dem angegebenen Pfad auf dem Server laufen zu lassen ist der genaue Weg für wo die Anwendung leben wird (einschließlich des virtuellen Verzeichnisses), aber ich weiß, dass dies nicht die perfekte Lösung ist, da ich den Pfad hin und her ändern muss, wenn ich ihn lokal oder live ausführe. Ich habe auch die gleichen Probleme bei der Angabe der Pfade zu Aktionen in Javascript-Dateien. Ich weiß, dass es eine einfache Lösung dafür geben sollte, aber ich habe gesucht und konnte nichts finden, so dass jede Hilfe sehr geschätzt wird. Vielen Dank,

Antwort

1

Ich denke, Sie sind verwirrt ASP.NET und ASP.NET MVC. Sie sollten HTML-Helfer verwenden und niemals ein runat="server"-Tag in eine ASP.NET MVC-Ansicht einfügen. So könnte Ihr Formular wie folgt aussehen:

<% using (Html.BeginForm("PerformSearch", "Stock")) { %> 
    //some other stuff 
<% } %> 

Dies wird sich um die Generierung der richtigen Form-Tag kümmern.

+0

Wie über Pfade in JavaScript-Dateien? Wie lege ich den Pfad fest? –

+0

Es hängt davon ab, über welche Wege Sie sprechen und wie behandeln Sie sie in Ihrem Javascript. –

+0

Ich spreche über die Ajax-Aufrufe, die Pfade, die Sie in das Feld "url:" –