Я использую метод @Darin Dimitrov, описанный в Загрузка частичного представления в jquery.dialog , чтобы позволить пользователям щелкнуть одно из своих личных сообщений и просмотреть его внутри модального поля. Я использую ASP.NET MVC3 и Razor в качестве движка просмотра. Но у меня возникли некоторые проблемы с тем, чтобы заставить это работать ... Вот что я пытался сделать ниже:
Сообщения отображаются в виде таблицы:
<tr id="@item.Id" class="openConversationLink">
<td class="newMessageStatus">@MessageStatus(item)</td>
<td class="msgSenderName">@item.Sender</td>
<td class="msgSubject">@item.Subject</td>
<td class="msgLastUpdated">@item.LastUpdated</td>
<td class="modalItemActions"></td>
</tr>
И внутри того же частичного представления я получил следующий блок скрипта:
<script type="text/javascript">
$(function () {
$("#conversationModal").dialog({
autoOpen: false,
width: 850,
height: 600,
resizable: false,
draggable: false,
modal: true,
open: function (event, ui) {
var convId = ui.attr('id');
alert(convId);
$(this).load('@Url.Action("Conversation", "Message", new { conversationId = convId})');
}
});
$(".openConversationLink").click(function () {
$("#conversationModal").dialog('open');
});
});
</script>
По сути, я не уверен, к чему относятся параметры event
и ui
внутри обработчика open
. Так что небольшое объяснение по обоим будет оценено. Но в любом случае, даже сообщения не отображаются сейчас, я получаю эту ошибку:
Сообщение об ошибке компилятора: CS0103:
Название «convId» не существует в
текущий контекст. Источник:
$ (Это) .load ( '@ Url.Action ( "Разговор",
"Сообщение", новый
convId}) ');
По сути, я не хочу, чтобы эта строка запускалась до тех пор, пока я фактически не нажму на одну из строк (чтобы открыть диалоговое окно беседы), но похоже, что она действительно запускается при открытии страницы сообщений.
UPDATE:
Вот мой код jQuery:
$(function () {
$("#conversationModal").dialog({
autoOpen: false,
width: 850,
height: 600,
resizable: false,
draggable: false,
modal: true,
open: function (event, ui) {
var convId = event.target.attr('id');
alert(convId);
$(this).load('Message/Conversation/' + convId);
}
});
$(".openConversationLink").click(function () {
$("#conversationModal").dialog('open');
});
});
Что-нибудь, что можно с этим сделать? :)