Вызов метода действия из JavaScript - PullRequest
1 голос
/ 07 апреля 2011

Если мне нужно вызвать какой-либо метод действия контроллера из кода javascript, я могу назвать его просто передавая href, верно? Примерно так:

 $.colorbox({ href: '/Calendar/SessionPropertiesEditbox?starts='+start+' })

Это не сработает. Проблема в том, что точная ссылка должна включать доменное имя. Но вы не знаете, каким будет доменное имя. Это может быть "http://localhost:7741" сегодня, завтра может быть совершенно другим.

Так как же эмулировать поведение ActionLink в коде javascript?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

Вы неверны; это сработает.

Это относительный к домену путь, поэтому браузер автоматически добавит текущий домен.

Если ваше приложение не запущено в корне домена, оно не будет работать, так как будет выглядеть в корне домена.
Если это так, вам нужно позвонить Url.Action и передать его результат вашему Javascript.

На виде Razor это будет выглядеть как

<script>
    var url = "@Server.JavaScriptStringEncode(Url.Action(...))";
</script>
1 голос
/ 31 марта 2012

Попробуйте использовать JsAction http://jsaction.codeplex.com

...