我有一个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>
问题是,我无法对任何域名进行硬编码,因为该产品可能部署在不同的域名上。
答案 0 :(得分:0)
您需要使用相对于网站根目录的网址,例如/MailBox/EmailView/${id}
浏览器将包含网站加载的任何域。