2013-04-24 3 views
0

В моем приложении C# MVC4 у ​​меня есть два основных вида: «Index» и «Index_Perm». Введенная роль пользователя определяет, какое из этих представлений отображается. «Индекс» содержит представление «PMain», а Index_Perm »содержит представление« PMain_Lim ».« PMain »и« PMain_Lim »содержат другое частичное представление под названием« Анализ ». Внутри« Analysis »у меня есть этот скрипт:JQuery AJAX Post Inside Partial View

Проблема заключается в том, что при обращении к «главному виду», когда «Щелчок по указателю» является основным видом, этот сценарий работает правильно, когда нажата кнопка «Отправить». Когда «Index_Perm» является основным видом, однако, когда нажата кнопка, сообщение AJAX с ошибкой: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. The directory or file specified does not exist on the Web server. После некоторого расследования в Firebug я вижу, что он пытается получить доступ: mylocalhost/Home/Index_Perm/Home/Average вместо: mylocalhost/Home/Average, который указан в качестве URL-адреса для отправки POST в моем скрипте. Вот применимая часть кода, которая является идентичны в «PMain» и «PMain_Lim» которая содержит кнопку, которая привязана к сценарию:

<div id="Analysis" title="Analysis"> 
     @Html.Action("Analysis", "Home", Model) 
    </div> 
</section> 
<section> 
     <h3> 
      <button class="btn" id="SubmitAverage" value ="SubmitAverage" name="action:SubmitAverage" type="button">Submit Averages</button> 
     </h3> 
    </section> 
<section> 
    <div id="OtherView" title="OtherView" class="OtherChanges"> 
     @Html.Action("OtherView", "Home", (string)ViewBag.SearchKey) 
    </div> 
</section> 

Любые идеи, почему его игнорируя то, что я указал в качестве URL для использования в JQuery AJAX POST и/или как это исправить?

ответ

1

Используйте urlhelper в вашем АЯКС пост

url: '@Url.Action("Average","Home")', 
+0

Это прекрасно работало. Можете ли вы объяснить, почему это необходимо? – HendPro12

+0

Я думаю, что определение этого метода говорит все это - * «Создает полный URL-адрес метода действия, используя указанное имя действия и имя контроллера». * –

+0

Я понимаю определение, меня больше интересовало, почему указание URL-адреса как я изначально работал только в одном сценарии. Спасибо все-таки за решение, очень ценим! – HendPro12

Смежные вопросы