В настоящее время я конвертирую наш бизнес-сайт из ASP.NET WebForms в ASP.NET MVC3.В настоящее время я пытаюсь включить индикатор присутствия для моих пользователей так же, как мы использовали WebForms.В WebForms мы использовали файл с именем NameControl.js
(полученный от Microsoft) с кодом сайта следующим образом:
<ItemTemplate>
<span class="presence">
<asp:Image Style="" ID="PresenceImage" runat="server" ImageUrl="~/Common/Images/Shady/Presence/presence_16-unknown.gif" />
</span>
</ItemTemplate>
и с кодом:
private void SetPresence(GridViewRow row, int PRESENCE_COL, string sip)
{
Image presenceImage = row.FindControl("PresenceImage") as Image;
if (string.IsNullOrEmpty(sip))
presenceImage.Visible = false;
else
{
presenceImage.Attributes.Add("onload", "PresenceControl('" + sip + "');");
}
}
И этоработает нормально.Итак, вернемся к исходному вопросу.В настоящее время я перечисляю своих пользователей, использующих WebGrid, и вот мой код присутствия из моего представления (внутри WebGrid):
grid.Column("Sip", header: "", format: @<text><span class="presence"><img id="@item.ObjectGuid" src="@Url.Content("~/Content/Images/Shady/Presence/presence_16-unknown.gif")" onload="PresenceControl("@item.Sip")" alt="" /></span></text>),
То, что в настоящее время происходит, просто, ничего.Выход из кавычек ничего не делает, оставляя их без изменений.Когда я пытаюсь использовать '@item.Sip'
вместо "@item.Sip"
, я получаю сообщение об ошибке:
Ошибка времени выполнения Microsoft JScript: «PresenceControl» не определен
I'mв недоумении, что делать.У кого-нибудь есть идеи?
ОК, я нашел проблему.Javascript, поставляемый Microsoft, имел синтаксическую ошибку, из-за которой он сломался и не загрузился должным образом.Я наткнулся на это с помощью веб-инструментов в IE9 (), наблюдая за выводом консоли.В любом случае, это исправлено сейчас!