MVC 3 Renderpartial и JQuery связывание - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть страница, с которой я пытаюсь использовать renderpartial. Это первый раз, когда я попробовал это. Там есть вход и кнопка отправки. Это работает нормально, насколько получение данных. Проблема, с которой я сталкиваюсь, состоит в том, что частичное представление не имеет связанных с ними событий jQuery. JS находится в отдельном файле, который загружается при загрузке главной страницы. Я пытался использовать «живой» метод, и он не работает. Как заставить jQuery связываться с частичной страницей, когда я ее вызываю?

Вот страница, которая вызывает частичное представление:

@using (Ajax.BeginForm("TaskStudentDetail", new AjaxOptions { UpdateTargetId = "StudentDetail" })) {
    <p>Enter the student ID: @Html.TextBoxFor(a => a.Id) <input id="Submit" type="submit" value="Lookup" /> <button id="StudentTaskLookupButton">Lookup</button></p>
}
<div id="StudentDetail">

</div>

Вот частичный вид:

<div id="TaskStudentTaskSelect">
    <div id="TaskStudentTaskSelectLeft">
        <p>Tasks Available</p>
        <select id="TaskStudentTaskAvailableSelect" multiple="true">
            <option>Task 1</option>
            <option>Task 2</option>
            <option>Task 3</option>
        </select>
    </div>
    <div id="TaskStudentTaskSelectMiddle">
        <p><button id="TaskStudentTaskSelectAll">>></button></p>
        <p><button id="TaskStudentTaskSelectOne">-></button></p>
        <p><button id="TaskStudentTaskDeselectOne"><-</button></p>
        <p><button id="TaskStudentTaskDeselectAll"><<</button></p>
    </div>
    <div id="TaskStudentTaskSelectRight">
        <p>Tasks Assigned</p>
        <select id="TaskStudentTaskAssignedSelect" multiple="true">
            <option>Task 1</option>
            <option>Task 2</option>
            <option>Task 3</option>
        </select>
    </div>
</div>

А вот и контроллер:

public ActionResult TaskStudentDetail(int id)
{
     TaskStudentViewModel taskStudentViewModel = new TaskStudentViewModel();
     taskStudentViewModel.FirstName = "John";
     taskStudentViewModel.LastName = "Smith";

     return this.PartialView(taskStudentViewModel);
 }

И это jQuery, который я пытаюсь связать после вызова частичного рендера:

$("#TaskStudentTaskSelectAll").button().click(function () {
    $("#TaskStudentTaskAvailableSelect option").appendTo("#TaskStudentTaskAssignedSelect");
});

Ничего особенного. Приведенные выше теги «button» имеют связанные с ними события кликов. Спасибо.

...