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

问题描述 投票:-1回答:1

我有一个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 {[email protected]})">@Model.Name</a></td>     
    <td class="mail-subject"><a href="@Url.Action("EmailView", "Mailbox", new {[email protected]})">@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>

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

jquery ajax asp.net-mvc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.