从javascript调用c#方法进行重定向

时间:2014-07-23 12:59:14

标签: c# javascript

我有一个重定向的c#方法

[UIAuthentication()]
[UIMethod("cancelredirect", "mth"), UIMethodGroup("employeradmin")]
public void CancelRedirect(RequestContext Context)
{
  Context.Redirect(string.Format("View.mth?EmployerID={0}", _employerID));
}

由此我创建了一个javascript函数,如果按下表单上的取消按钮,则会调用该函数。

function getCancel() {
    var confirmCancel = confirm('Are you sure you want to cancel?');
    if(confirmCancel)
    {
      //redirect here
    }
    else
    {
    return false;
    }
    };

<input type="submit" id="Cancel" value="Cancel" name="Cancel" class="input_button" onclick="return getCancel();"/>

我只是想知道如何从javascript调用c#方法重定向到页面view.mth?我不是100%肯定如何做到这一点,因为我从来没有做过这一个。感谢您提供的任何帮助

3 个答案:

答案 0 :(得分:0)

实际上你的问题应该是:“如何从java脚本中调用action方法?”

假设你的控制器类名:EmployeeController

if(confirmCancel)
{
  document.location = = '/Employee/CancelRedirect';
}

请浏览以下链接以获取更多信息:How to redirect to another webpage in JavaScript/jQuery?

答案 1 :(得分:0)

当你通过ajax调用server方法时,你不能进行Redirect,因为响应处理程序不是页面。

如果您调用CancelRedirect的目的只是为了获取一个变量,那么来自服务器端的EmployerID

您可以通过Ajax获取EmployerID,当正面获得EmployerID时,只需重定向:

window.location = "/View.mth?EmployerID=xxxx";

Ps:也许你应该将ajax async属性设为false

答案 2 :(得分:0)

尝试使用ajax:

if(confirmCancel)
{
var url = '/Employee/CancelRedirect';
            $.ajax({
                url: url,
                type: 'POST',
                cache: false,
                data :{ valeur : if you want to send a value }
            })
}