1

現在、ビジネス サイトを ASP.NET WebForms から ASP.NET MVC3 に変換しています。現在、Web フォームを使用したのと同じ方法で、ユーザーにプレゼンス インジケーターを含めようとしています。NameControl.jsWebFormsでは、(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' が定義されていません

私は何をすべきか途方に暮れています。誰にもアイデアはありますか?

OK、問題が見つかりました。Microsoft から配信された Javascript には構文エラーがあり、JavaScript が壊れて正しく読み込まれませんでした。コンソール出力を見て、IE9 () の Web ツールを使用して偶然見つけました。とにかく、これで決まり!

4

0 に答える 0