Javascript函数参数在ajax调用中不可用
我正在处理一个HTML页面,在该页面中,单击一个按钮,我将调用一个javascript函数。该函数有一个来自html字段的参数。我必须根据输入参数加载另一个html页面(其asp.NETMVC3) 在html页面中:Javascript函数参数在ajax调用中不可用,javascript,asp.net,ajax,asp.net-mvc-3,Javascript,Asp.net,Ajax,Asp.net Mvc 3,我正在处理一个HTML页面,在该页面中,单击一个按钮,我将调用一个javascript函数。该函数有一个来自html字段的参数。我必须根据输入参数加载另一个html页面(其asp.NETMVC3) 在html页面中: <input type="radio" id="selected" name="selected" onclick="javascript:handleselect(this);" value=@item.ProjectID /> 在相同的代码中,
<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){
$.get('@Url.Action(“Details”,“ProjList”,new{id=myRadio.value})'),
async:false,
函数(查看结果){
$(“#某个容器”).html(viewResult);
警报(查看结果);
});
});
这是我的示例脚本。但是,我得到了一个错误,比如“名称‘myRadio’在当前上下文中不存在”
HTML代码
我试着寻找所有可能的解决办法。有人能帮我吗
问候。
Hari使用这个-
'@Url.Action(“详细信息”,“项目列表”,新的{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);
});
});
然后-那么您的函数如下
function handleselect(myRadio) {
$.get('@Url.Action("Details", "ProjList")', {
id: $(myRadio).val()
},
function (viewResult) {
$("#some-container").html(viewResult);
alert(viewResult);
});
});
或
myRadio
是客户端变量,在服务器端不可用
function handleselect(myRadio) {
$.get('@Url.Action("Details", "ProjList")', {
id: myRadio.value
}, function (viewResult) {
$("#some-container").html(viewResult);
alert(viewResult);
});
});
razor引擎解释urlhelper,不知道您的客户端代码。这就是为什么您不能将变量与
Url.Action
一起使用。您可以尝试以下方法:
$.get('@Url.Action("Details", "ProjList")?id=' + myRadio.value,
function (viewResult) {
$("#some-container").html(viewResult);
alert(viewResult);
});
或者另一个选项是使用数据参数:
$.get('@Url.Action("Details", "ProjList")', { id: myRadio.value},
function (viewResult) {
$("#some-container").html(viewResult);
alert(viewResult);
});
如果你只是想知道单选按钮的值,就这样试试吧
<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 />
还是像这样
<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>
函数handleselect(myRadioValue){
$.get('@Url.Action(“详细信息”,“项目列表”,新的{id='+myRadioValue+'}')),
async:false,
函数(查看结果){
$(“#某个容器”).html(viewResult);
警报(查看结果);
});
});
显示定义myRadio的代码myRadio.value不需要在字符串之外?如果执行alert(myRadio.value),您会得到什么;在此函数的第一行中?我得到了正确的值。只有在其内部时才得到结果。是否需要标记中html属性值的值?我需要该值,因为我正在动态更改该值。您好,感谢您的响应。现在,我在html代码中得到一个错误:“Microsoft JScript运行时错误:预期对象。”“。我遗漏了什么吗?这意味着你需要@item.projectd?嗨,谢谢你的回复。现在,我在HTML代码中得到一个错误:“MicrosoftJScript运行时错误:预期对象”。我错过什么了吗?你怎么称呼handleselect
?请编辑您的问题并在那里添加相关代码。啊,等等,我认为您的代码根本不会运行。async:false
不是$的有效参数。get
。已尝试删除assync:false行。它仍然会给出与“Microsoft JScript运行时错误:预期对象”相同的错误。您是否使用firebug之类的工具查看错误指向您的位置?您好,感谢您的回复。现在,我在HTML代码中得到一个错误:“MicrosoftJScript运行时错误:预期对象”。我错过了什么吗?@HariprasauthRamamoorthy你能分享一下handleselect
叫什么吗?谢谢你的回复。现在,我在HTML代码中得到一个错误:“MicrosoftJScript运行时错误:预期对象”。我错过了什么吗?@Hariprasauth Ramamoorthy:做一个警报$(myRadio).val(),你得到了什么。第二,控制台是否有任何错误?现在工作正常!!!!!!!:)非常感谢。。这是因为缺少一个括号!对我不好!