用客户端锚标记替换服务器端@ Url.Action

时间:2018-02-28 09:36:49

标签: jquery ajax asp.net-mvc

我有一个asp.net mvc 5应用程序,显示用户的邮件,当他点击其中一封电子邮件时,另一个操作显示邮件内容。当我决定为收件箱启用分页时,我实现了通过ajax请求从api加载邮件列表。

如何将服务器端@ Url.Action替换为客户端锚标记地址?

// This is server side code in the Inbox.chtml
<tr class="unread">
    <td class="mail-ontact"><a href="@Url.Action("EmailView", "Mailbox", new {Id=@Model.Id})">@Model.Name</a></td>     
    <td class="mail-subject"><a href="@Url.Action("EmailView", "Mailbox", new {Id=@Model.Id})">@Model.Subject</a></td> 
    <td class="text-right mail-date">@Model.Time</td>
</tr>


//  Client side implemetation
//
//  inside success function
<tr class="${isMailRead}>"
    <td class="mail-ontact"> <a href="????">${name}</a></td>     // ??? should be http://my-domain/Mailbox/EmailView/2
    <td class="mail-subject"><a href="????">${subject}</a></td>  // how can i replace my-domain with proper value ?
    <td class="text-right mail-date">${composeTime}</td>
</tr>

问题是,我无法对任何域名进行硬编码,因为该产品可能部署在不同的域名上。

1 个答案:

答案 0 :(得分:0)

您需要使用相对于网站根目录的网址,例如/MailBox/EmailView/${id} 浏览器将包含网站加载的任何域。

相关问题