Как мне заставить JQuery работать в asp.net MVC - PullRequest
0 голосов
/ 26 июля 2011

Я прочитал книги, я погуглил их до смерти, но я до сих пор не получил результатов.У меня есть приложение MVC, и я помещаю ссылку на jquery на главную страницу, а также регистрирую код инициализации следующим образом:

<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />

<script>
    $(function () {
        $("#txt").click(function () {
            var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text");
        $("#holder").append($ctrl);
    });

});
</script>

Что этот код предназначен для добавления текстаПри переходе на кнопку с идентификатором «txt» указывается поле с идентификатором «holder».Я получил этот код из Интернета где-то, и он прекрасно работает с этой страницы.Я не могу найти его больше, или я бы включил ссылку.Я сделал кнопку так:

<input type="button" id="txt" value="Add TextBox" />
<div id="holder"> this is the holder </div>

Однако при нажатии на кнопку абсолютно ничего не происходит.Все, что я хочу знать, это ГДЕ КОДЕКС JQUERY GO?Я помещаю все функции в главу главной страницы?я помещаю это в каждую страницу aspx?положить его в отдельный файл и если да, то где и как я могу ссылаться на него?все книги не имеют для меня никакого смысла, я только начинаю с jquery, и этот горб - то, что мешает мне даже начать углубляться в это.Куда уходит код jquery?пожалуйста, помогите.

Ответы [ 4 ]

0 голосов
/ 26 июля 2011

не должен ли ваш код:

<script>
    $(function () {
        $("#txt").click(function () {
            var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text");
        $("#holder").append($ctrl);
    });

});
</script>

содержаться в вызове jquery $ (document) .ready ()?

, поэтому попробуйте что-то вроде этого:

<script>
$(document).ready(function(){
    $("#txt").click(function () {
        var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text");
        $("#holder").append($ctrl);
    });
});
</script>
0 голосов
/ 26 июля 2011

Во-первых, причина, по которой ваш код jQuery не запускается, в том, что ~ не имеет смысла для браузера. Это должно быть либо переключено на абсолютную ссылку:

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>

.. или его необходимо преобразовать в абсолютную ссылку, используя код, выполняемый на стороне сервера:

// Using the ascx view engine
<script src="<%: Url.Content("/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
// Using the razor view engine
<script src="@Url.Content("/Scripts/jquery-1.4.1.js")" type="text/javascript"></script>

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

PS: файл -vsdoc.js предназначен исключительно для intellisense и не должен включаться в фактическую разметку. VS.NET автоматически обнаружит его наличие и будет использовать его, когда узнает, что вы используете соответствующий файл jquery.

0 голосов
/ 26 июля 2011

Смотрите здесь: http://jsfiddle.net/UukmR/1/

Работает нормально?

Убедитесь, что все ссылки на сценарии верны, и включите их в заголовок главной страницы.

0 голосов
/ 26 июля 2011
<script src="@Url.Content("~/Scripts/jquery-1.4.1.js")" type="text/javascript"></script>
...