Укажите пути к действиям в aspx страницах MVC - PullRequest
0 голосов
/ 05 декабря 2010

Я работаю над приложением ASP.NET MVC. На главной странице у меня есть форма, которую мне нужно отправить в другое действие. Ниже приведен соответствующий код:

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

Как видите, когда я отправляю форму, я хочу перейти к действию "PerformSearch" в контроллере "Stock". Это прекрасно работает на моей локальной машине хостинг. Но когда я пытаюсь опубликовать сайт на сервере, MVC больше не распознает этот путь. Мой вопрос заключается в том, как мне указать пути к действиям на страницах aspx, чтобы они работали как локально, так и вживую. Я знаю, что могу использовать «использование Html.BeginForm», и это решит проблему, но я действительно не хочу использовать его по другим причинам, а также мне всегда нужно указывать пути к действиям во многих других тегах, кроме тег формы.

Кстати, изменив путь на "http://cse454db.cs.washington.edu/BestBet/Stock/PerformSearch"

заставит его работать на сервере, так как данный путь является точным путем к месту, в котором будет жить приложение (включая виртуальный каталог), но я знаю, что это не идеальное решение, так как мне приходится постоянно менять путь назад и вперед всякий раз, когда запускаешь его локально или живешь. Кроме того, у меня есть те же проблемы при указании путей к действиям в файлах JavaScript. Я знаю, что для этого должно быть простое решение, но я искал и ничего не мог найти, поэтому любая помощь будет принята с благодарностью. большое спасибо,

1 Ответ

1 голос
/ 05 декабря 2010

Я думаю, что вы путаете ASP.NET и ASP.NET MVC.Вам следует использовать HTML-помощники и никогда не помещать тег runat="server" в представление ASP.NET MVC.Таким образом, ваша форма может выглядеть так:

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

Это позаботится о создании правильного тега формы.

...