Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在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 - Fatal编程技术网

在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函数中包含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中一样,但实际上没有 有没

我得到了这个Razor代码和这个Javascript函数。基本上,Razor链接是根据从模型变量检索的数据构建的,Javascript函数会打开一个新窗口/选项卡(取决于设置),或者在浏览器设置不允许弹出窗口时向用户发出警告。单独使用时,两者都可以正常工作

问题就在这里。我希望Razor构建的链接作为Javascript函数的window.open命令中的参数

我本以为在Javascript或JQuery中,会有一个string.format()函数,就像现在在.Net中一样,但实际上没有

有没有办法通过ID获取Razor在锚标记中构建的Href字符串属性?或者对此有任何其他建议


谢谢

据我所知,
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');
        }
    });
});