我有一个下拉列表。我想点击任何项目,然后通过参数重定向视图。
$(document).ready(function () {
$("#Languages").change(function () {
var selectedValue = $(this).find('option:selected').val();
window.location.href = "/Survey/SelectLanguage/" + selectedValue+"/id/"+@Model.CampaignGuid;
});
});
控制器中的操作方法是:
public ActionResult SelectLanguage(string languageName, Guid id)
{
}
但是我在chrome调试器中发现了一个错误。
Uncaught SyntaxError: Invalid or unexpected token
如果我将其注释掉代码window.location.href = "/Survey/SelectLanguage/" + selectedValue+"/id/"+@Model.CampaignGuid;
。
然后错误就消失了。那有什么不对?
答案 0 :(得分:0)
好吧,既然您没有定义url并且您使用的是默认路由,则默认基于查询字符串。试试这个:
$(document).ready(function () {
$("#Languages").change(function () {
var selectedValue = $(this).find('option:selected').val();
window.location.href = "/Survey/SelectLanguage/@Model.CampaignGuid?languageName=" + selectedValue;
});
});
通过遵循asp.net mvc的默认路由,你可以在url上传递名为id
的参数作为其一部分,然后你可以使用CampingGuid
作为id,{{1}你可以使用查询字符串。
答案 1 :(得分:0)
更改
window.location.href = "/Survey/SelectLanguage/" +
selectedValue + "/id/" + @Model.CampaignGuid;
到
window.location.href = "/Survey/SelectLanguage/" +
selectedValue + "/id/@Model.CampaignGuid";
如果CampaignGuid
真的是Guid
,那么你就是在你的html中写了"/id/" + d0164584-bac0-485b-8a84-b7923caa6ee7
,Chrome的javascript引擎不知道d0164584-bac0-485b-8a84-b7923caa6ee7
是什么,它需要成为一个字符串。
答案 2 :(得分:0)
尝试将您的网址定义为
"/Survey/SelectLanguage?selectedValue=" + selectedValue + "&id=@Model.CampaignGuid"