У меня есть некоторые общие функции Javascript, которые я хочу поделиться через несколько просмотров / страниц.

Однако я хочу поместить немного C # / ASP.net в javascript - получить некоторые данные с сервера.

Похоже, что лучше всего использовать частичную страницу и включить в нее javascript.

Просто интересно, есть ли JavaScript-эквивалент частичной страницы?

Или есть другой / лучший / альтернативный способ сделать это?

РЕДАКТИРОВАТЬ: я понимаю, что я мог бы использовать AJAX для извлечения серверного кода (хотя, как я обращаюсь к серверу, Url.Content не будет работать), но этот код предназначен для обработки прав доступа к странице, то есть данные сервера подробности, что функции пользователя можно получить доступ и функции javascript затем используются, чтобы показать / скрыть кнопки на основе этого. Таким образом, данные должны присутствовать на ранней стадии, а не запускать страницу для построения после обратного вызова ajax.

Заранее спасибо Крис

0
Chris Kimpton 13 Июл 2010 в 11:27

3 ответа

Лучший ответ

Я обычно помещаю некоторые данные, которые необходимы javascript, в верхнюю часть страницы.

У меня есть это на главной странице.

После этого я включаю общие файлы JS. Переменные, определенные в верхней части страницы, доступны для сценариев. Не забудьте JavascriptEncode этих значений. Html-Encode недостаточно, он не обрабатывает '. Используйте для этого библиотеку веб-защиты http://wpl.codeplex.com/.

<script language="JavaScript">
var controller = <%= AntiXss.JavaScriptEncode(ViewContext.RouteValues.GetRequiredString("controller")) %>;
var userRightRead = <%= AntiXss.JavaScriptEncode(Model.UserRightRead) %>;
</script>
1
Mathias F 15 Июл 2010 в 11:00

Обычно я заключаю javascript в класс, а затем передаю значения модели представления, которые мне нужны.

Например с этим JavaScript:

var testClass = function(config){
    this.width = config.width;
    this.height = config.height; 

    this.showDimensions = function(){ 
        alert( this.width + " by " + this.height); 
    }
}

Представление / частичное представление будет содержать:

<script>
var dim = new testClass({ 
    width: <%=Model.Width %>
    height: <%=Model.Height %>
})

dim.showDimensions();
</script>
1
Castrohenge 13 Июл 2010 в 08:24

Однако я хочу поместить C # / ASP.net в javascript - получить некоторые данные с сервера

Вам не нужно помещать какой-либо C # / ASP.NET в javascript для получения данных с сервера. Вы можете просто использовать AJAX. Пример с jQuery:

$.ajax({
    url: '/home/someaction',
    success: function(data) {
        alert(data);
    }
});
1
Darin Dimitrov 13 Июл 2010 в 08:03