0

我正在处理一个 HTML 页面,在该页面上单击按钮,我正在调用一个 javascript 函数。该函数有一个来自 html 字段的参数。而且我必须根据输入参数加载另一个 html 页面(它的 asp.net MVC3)。

在html页面中:

        <input type="radio" id="selected" name="selected" onclick="javascript:handleselect(this);" value=@item.ProjectID />

在相同的代码中,我有 javascript..

<script type="text/javascript" language="javascript"> 
    function handleselect(myRadio) {      
         $.get('@Url.Action("Details", "ProjList", new { id = myRadio.value })', 
         async: false,
         function (viewResult) {
             $("#some-container").html(viewResult);
             alert(viewResult);
         });
     });

</script>

这是我的示例脚本。但是,我收到一个错误,例如“当前上下文中不存在名称‘myRadio’。

HTML 代码

我试图查看所有可能的解决方案。请问有人可以帮我吗?

问候。哈里

4

5 回答 5

0

用这个 -'@Url.Action("Details", "ProjList", new { id = myRadio.value})

或者,如果您需要值标签的值,请使用此 Javascript 语句-

'@Url.Action("Details", "ProjList", new { id = '+myRadio.getAttribute("value")+'})'

编辑:

    function handleselect(myRadio) { 
var url = @Url.Action("Details", "ProjList", new { id = myRadio.getAttribute("value")});     
         $.get(url, 
         async: false,
         function (viewResult) {
             $("#some-container").html(viewResult);
             alert(viewResult);
         });
     });

然后-

于 2013-04-29T09:34:28.067 回答
0

所以你的功能就像

 function handleselect(myRadio) {      
      $.get('@Url.Action("Details", "ProjList")', { 
         id: $(myRadio).val() 
      },
      function (viewResult) {
          $("#some-container").html(viewResult);
          alert(viewResult);
      });
  });

或者

 function handleselect(myRadio) {      
      $.get('@Url.Action("Details", "ProjList")', { 
         id: $(myRadio).attr('value') 
      },
      function (viewResult) {
          $("#some-container").html(viewResult);
          alert(viewResult);
      });
  });
于 2013-04-29T09:37:44.710 回答
0

如果您只想要单选按钮的值,请尝试这样

<input type="radio" id="selected" name="selected" onclick="javascript:handleselect(this.value);" value=@item.ProjectID />

或者像这样

<input type="radio" id="selected" name="selected" onclick="javascript:handleselect(@item.ProjectID);" value=@item.ProjectID />

在函数中你直接使用这个值

<script type="text/javascript" language="javascript"> 
    function handleselect(myRadioValue) {      
         $.get('@Url.Action("Details", "ProjList", new { id ='+myRadioValue+'})'), 
         async: false,
         function (viewResult) {
             $("#some-container").html(viewResult);
             alert(viewResult);
         });
     });

</script>
于 2013-04-29T10:22:46.063 回答
0

myRadio是客户端变量,在服务器端不可用

function handleselect(myRadio) {
    $.get('@Url.Action("Details", "ProjList")', { 
        id: myRadio.value 
    }, function (viewResult) {
              $("#some-container").html(viewResult);
              alert(viewResult);
          });
}); 
于 2013-04-29T09:42:30.960 回答
0

razor 引擎解释 urlhelper 并且不知道您的客户端代码。这就是您不能将变量与Url.Action. 你可以试试这个:

$.get('@Url.Action("Details", "ProjList")?id=' + myRadio.value, 
    function (viewResult) {
        $("#some-container").html(viewResult);
        alert(viewResult);
    });

或者另一种选择是使用 data 参数:

$.get('@Url.Action("Details", "ProjList")', { id: myRadio.value}, 
        function (viewResult) {
            $("#some-container").html(viewResult);
            alert(viewResult);
        });
于 2013-04-29T09:42:44.167 回答