在MVC4中的控制器内调用Javascript表单

在MVC4中的控制器内调用Javascript表单,javascript,vb.net,asp.net-mvc-4,Javascript,Vb.net,Asp.net Mvc 4,我想从我使用的控制器函数中调用javascript函数: Public Function redirectTo() As JavaScriptResult Return JavaScript("ToSignUp()") End Function 在我的控制器里。但是这个程序从来没有进入脚本。我已经检查过类似的答案,但还没有找到解决问题的办法。有人能帮我吗 新增4/3/19 12:41 我使用以下命令从我的控制器重定向。。。但什么都没有发生: Public Functi

我想从我使用的控制器函数中调用javascript函数:

 Public Function redirectTo() As JavaScriptResult
        Return JavaScript("ToSignUp()")
    End Function
在我的控制器里。但是这个程序从来没有进入脚本。我已经检查过类似的答案,但还没有找到解决问题的办法。有人能帮我吗

新增4/3/19 12:41
我使用以下命令从我的控制器重定向。。。但什么都没有发生:

Public Function redirectTo() As RedirectToRouteResult
        Dim routes As New RouteCollection With {.RouteExistingFiles = True}
        Return RedirectToAction("../login/SignUp")
    End Function
End Class
新增4/3/19 23:20
这个问题就这样解决了
在我的
.aspx
页面的
代码隐藏
中,在适当的位置添加以下代码:

 Dim routes As New RouteCollection With {.RouteExistingFiles = True}
  Response.Redirect("SignUp")
Response.Redirect
指令不是新指令
但为了发挥功能,需要在以下指令之前添加

Dim routes As New RouteCollection With {.RouteExistingFiles = True}
这是因为MVC无法识别存在的文件,这意味着属性
RouteExistingFiles
总是
False

因此,为了处理代码,我们需要将此属性设置为
True


无论如何,感谢大家的帮助。

从其他联机示例(),我想说,如果您临时将函数更改为:

Public Function redirectTo() As JavaScriptResult
    Return JavaScript("alert("HERE");")
End Function

它可能会起作用。。。因此,如果没有看到JS函数的内容,就很难说了。对于第二点,如果从服务器调用,
RedirectToAction
调用将起作用;如果客户端正在调用此函数,请改用“window.location”。

您不能从服务器“调用”javascript,因为它们在完全不同的领域中运行。您可以将一些输出写入视图,一旦加载vire,这些输出将触发javascript。我不知道vb.net,但我可以想象
Javascript
实际上返回JSON,这是一种信息交换格式。它没有被执行,所以你为什么不返回一个
重定向
?重定向到另一个页面与javascript无关:)只需使用重定向或重定向操作并为其提供url(到目标页面的路径)。“这样做的主要思想是从我工作的页面重定向到另一个页面”…同意,这绝对不需要JavaScript。您如何称呼此操作<代码>重定向只发出HTTP 302。如果您使用的是ajax或其他东西,那么调用代码将不会遵守这一点。我使用“Public Function callScript()作为JavaScriptResult Return JavaScript(“alert('ToSignUp()');”)End Function`来调用脚本。但是没有工作,没有通过脚本。。。有什么建议吗?你确定路由正确吗?如果你打开网络标签,它是否可能返回404?你是指我的解决方案还是我上面的通知?你说的404是什么意思?错误还是什么?我指的是请求“重定向到”操作的任何东西;如果它没有正确路由,它可能会产生404或500错误,例如。。。使用调试工具将有助于识别。是的。。好的,起初这个错误是从
重定向路由抛出的,但是从我将
routeeExistingFiles属性添加到true的那一刻起,错误停止了,但是什么也没有发生(我的意思是从来没有重定向到任何地方),所以我停止使用路由(一般来说)。