如何使用 Underscore.js 模板中的数据呈现 Url.Action?
How to render Url.Action with data in an Underscore.js template?
单击下载按钮时,我正在尝试下载 JSON 文件。
public ActionResult getJsonFile(Guid ProtocolId)
{
List<Country> lst = new List<Country>();
for (int i = 1; i <= 10; i++)
{
lst.Add(new Country() { CountryId = i, CountryName = "India" + i });
}
string jsondata = new JavaScriptSerializer().Serialize(lst);
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(jsondata);
return File(bytes, "application/json", "JsonData.json");
}
如果我不向此方法发送任何参数 (ProtocolId
),此代码对我来说工作正常。
<script type="text/ng-template">
<button type="button" onclick="location.href='@Url.Action("getJsonFile", "Home")">Download</button>
</script>
这里,protocolid
需要使用这些标签 <%= protocolid %>
(Underscore.js 模板)进行绑定,因为我使用 Backbone.js 作为客户端脚本。
如何将 protocolid
绑定到锚标记,以便当用户单击 Download
link 时,它应该将 protocolid
发送到 getJsonFile()
方法?
假设 @Url.Action("getJsonFile", "Home")
返回的 url 具有以下形式 /home/json-file/
并且您希望获得:
/home/json-file/1234
您可以只附加 ID:
<a href="@Url.Action("getJsonFile", "Home")<%= protocolid %>">Download</a>
如果id在url之内,我想你可以在Url.Action
(未测试)中输入任意字符串作为id:
@Url.Action("getJsonFile", "Home", new { id = "<%=protocolid%>" })
因此它会在正确的位置生成标签,例如:
/home/get-json/<%=protocolid%>/download/
因此,当使用下划线渲染时,<%=protocolid%>
会被正确替换。
单击下载按钮时,我正在尝试下载 JSON 文件。
public ActionResult getJsonFile(Guid ProtocolId)
{
List<Country> lst = new List<Country>();
for (int i = 1; i <= 10; i++)
{
lst.Add(new Country() { CountryId = i, CountryName = "India" + i });
}
string jsondata = new JavaScriptSerializer().Serialize(lst);
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(jsondata);
return File(bytes, "application/json", "JsonData.json");
}
如果我不向此方法发送任何参数 (ProtocolId
),此代码对我来说工作正常。
<script type="text/ng-template">
<button type="button" onclick="location.href='@Url.Action("getJsonFile", "Home")">Download</button>
</script>
这里,protocolid
需要使用这些标签 <%= protocolid %>
(Underscore.js 模板)进行绑定,因为我使用 Backbone.js 作为客户端脚本。
如何将 protocolid
绑定到锚标记,以便当用户单击 Download
link 时,它应该将 protocolid
发送到 getJsonFile()
方法?
假设 @Url.Action("getJsonFile", "Home")
返回的 url 具有以下形式 /home/json-file/
并且您希望获得:
/home/json-file/1234
您可以只附加 ID:
<a href="@Url.Action("getJsonFile", "Home")<%= protocolid %>">Download</a>
如果id在url之内,我想你可以在Url.Action
(未测试)中输入任意字符串作为id:
@Url.Action("getJsonFile", "Home", new { id = "<%=protocolid%>" })
因此它会在正确的位置生成标签,例如:
/home/get-json/<%=protocolid%>/download/
因此,当使用下划线渲染时,<%=protocolid%>
会被正确替换。