在我看来,我有一个javascript函数来处理饼图上的select事件。功能如下所示:
function selectHandler() {
var selectedItem = visualization.getSelection()[0];
if (selectedItem) {
var val = data.getFormattedValue(selectedItem.row, 0);
location.href = '/Tickets';
}
}
目前我在 Groups 视图中的 Home 控制器上。我想在从javascript变量“val”传递选定值时导航到 Tickets Controller的 Index 视图。我该怎么做呢?
答案 0 :(得分:2)
您打算手动导航用户吗?
如果您正在寻找重定向JavaScript方式,那么您可以做一些简单的事情......
location.href = '/Tickets?value=' + val;
现在这可能不适用于所有事情。例如,如果location.href已包含“?”,并且您需要维护该上下文,则需要使用“&”。也许您的应用程序位于虚拟目录中。
您可能会做类似的事情......
var newUrl = location.href;
if (newUrl.indexOf('?') > -1)
newUrl += '&';
else
newUrl += '?';
newUrl += val;
这允许您维护任何现有的上下文。
如果您希望已经定义了故障单,则可能需要从查询字符串中删除该故障单(如果已存在)。
在那种情况下,您可能想要做类似......
的事情var params = location.search.substring(1).split('&'),
paramToRemove, indexOfValue,
hasSearch = false,
param;
for (var i = 0, len = i; i < len; i++)
{
param = params[i];
indexOfValue = param.indexOf('value');
hasSearch = param.indexOf('?') === 0;
if (indexOfValue === 0 || (indexOfValue === 1 && hasSearch ))
{
paramToRemove = params[i];
break;
}
}
var newUrl = location.href;
// Remove old value
if (paramToRemove) newUrl = newUrl.replace(paramToRemove, hasSearch ? '?' : '');
// Add proper search char
if (newUrl.indexOf('?') > -1)
newUrl += '&';
else
newUrl += '?';
// Add new value
newUrl += val;
答案 1 :(得分:1)
location.href = '/Tickets?val=' + val;
答案 2 :(得分:1)
//On page load the server will generate the URL for you.
var ticketURL = '@Url.Action("Index", "Tickets")';
//Append the value to the URL
ticketURL = ticketURL + '?val=' + val;
//Do your stuff!
答案 3 :(得分:0)
因为,你从javascript调用Controller方法。您应该对Ticket Controller进行POST ajax调用并传递Action方法名称。
您的代码将是这样的:
返回$ .post('/ Ticket(ControllerName)/索引(方法名称)/',参数此处);
在API控制器内部,Index方法将接受我们从javascript传递的相同param。
ActionResult Index(参数){...}