在Javascript函数中包含Razor格式的字符串 @foreach(Model.policydata中的变量项) { @DisplayFor(modelitem=>item.Name) @DisplayFor(modelitem=>item.PolicyID) @DisplayFor(modelitem=>item.CustomerID) } 函数OpenRepositoryFile() { var win=窗口打开(“”,(u blank'); 如果(赢) { //浏览器已允许将其打开 win.focus(); }否则{ //布罗斯韦尔把它堵住了 警报(“此应用程序功能要求启用弹出窗口。请右键单击以在新选项卡中打开或更改浏览器设置”); } }
我得到了这个Razor代码和这个Javascript函数。基本上,Razor链接是根据从模型变量检索的数据构建的,Javascript函数会打开一个新窗口/选项卡(取决于设置),或者在浏览器设置不允许弹出窗口时向用户发出警告。单独使用时,两者都可以正常工作 问题就在这里。我希望Razor构建的链接作为Javascript函数的window.open命令中的参数 我本以为在Javascript或JQuery中,会有一个string.format()函数,就像现在在.Net中一样,但实际上没有 有没有办法通过ID获取Razor在锚标记中构建的Href字符串属性?或者对此有任何其他建议在Javascript函数中包含Razor格式的字符串 @foreach(Model.policydata中的变量项) { @DisplayFor(modelitem=>item.Name) @DisplayFor(modelitem=>item.PolicyID) @DisplayFor(modelitem=>item.CustomerID) } 函数OpenRepositoryFile() { var win=窗口打开(“”,(u blank'); 如果(赢) { //浏览器已允许将其打开 win.focus(); }否则{ //布罗斯韦尔把它堵住了 警报(“此应用程序功能要求启用弹出窗口。请右键单击以在新选项卡中打开或更改浏览器设置”); } },javascript,c#,jquery,asp.net-mvc,razor,Javascript,C#,Jquery,Asp.net Mvc,Razor,我得到了这个Razor代码和这个Javascript函数。基本上,Razor链接是根据从模型变量检索的数据构建的,Javascript函数会打开一个新窗口/选项卡(取决于设置),或者在浏览器设置不允许弹出窗口时向用户发出警告。单独使用时,两者都可以正常工作 问题就在这里。我希望Razor构建的链接作为Javascript函数的window.open命令中的参数 我本以为在Javascript或JQuery中,会有一个string.format()函数,就像现在在.Net中一样,但实际上没有 有没
谢谢据我所知,
href
和onclick
两者不兼容,因为它们都做相同的事情
要创建参数,请将其视为字符串
@foreach (var item in Model.policydata)
{
<tr align="center">
<td>
@Html.DisplayFor(modelitem => item.Name)
</td>
<td>
@Html.DisplayFor(modelitem => item.PolicyID)
</td>
<td>
@Html.DisplayFor(modelitem => item.CustomerID)
</td>
<td>
<a onclick="OpenRepositoryFile()" href="@string.Format("http://repository.website.com/{0}/{1}.pdf", Model.PolicyName, item.CustomerID)">View</a>
</td>
</tr>
}
</table>
<script>
function OpenRepositoryFile()
{
var win = window.open('', '_blank');
if(win)
{
//Browser has allowed it to be opened
win.focus();
}else{
//Broswer has blocked it
alert('This application feature requires Popups Enabled. Please right click to open in a new Tab or change your Browser settings');
}
}
</script>
然后你的电话变成:
@{
String tempString = string.Format("http://repository.website.com/{0}/{1}.pdf", Model.PolicyName, item.CustomerID)"
}
警告-未测试使用jQuery可以很容易地做到这一点,只需通过jQuery使用此锚定标记绑定事件,如下所示: HTML
OpenRepositoryFile(@(tempString))
jQuery
<a id="ancWindow"
href="@string.Format("http://repository.website.com/{0}/{1}.pdf", Model.PolicyName, item.CustomerID)">View</a>
$(文档).ready(函数(){
$(“#窗口”)。单击(函数(e){
e、 预防默认值()//精彩的代码。我在查看Jquery,但是,我的代码知识在这个部门是缺乏的,需要改进…但是有一个问题。该函数确实可以工作,并且打开,但是即使选项卡打开,警报也会弹出。这与浏览器设置有关?或者可以对代码做进一步的工作吗?非常感谢到目前为止的thr呃。。。
$(document).ready(function() {
$('#ancWindow').click(function(e) {
e.preventDefault(); // <- used to prevent redirection from anchor
var win = window.open(this.href, '_blank');
if(win) {
//Browser has allowed it to be opened
win.focus();
} else{
//Broswer has blocked it
alert('This application feature requires Popups Enabled. Please right click to open in a new Tab or change your Browser settings');
}
});
});