图来自书的截图,我按照它这么写了但是没有预期的效果,而是打开了一个新页面,页面的文本就是希望执行的那段js,求解释
e有一个javaScriptResult 可以 ,但这种 返回的js你需要用别的内容去调用才能用 不然就当字符串处理了, 要不 你直接返回content写脚本就可以了 也可以注册一段脚本到前台
在view输出时,js脚本要放在脚本标签里。
在ajax请求调用时,获得的数据是字符串(貌似ajax没有对返回js代码的支持),然后通过js的eval方法去执行这段代码。
你是说我应该返回“<script type='text/javascript'>alert('go!')</script>”?
试过了也是在新页面西那是文本,文本内容是这个:<script type='text/javascript'>alert('go!')</script>
@北在北方: 有完整代码吗?可以帮你参考下。应该是客户端有特别处理,获取后直接使用了eval方法执行。
@519740105: 这是从书上截取的,总之就是实现一个弹出提示的功能,但弹出的信息又是可以服务器设定的,类似于WinForm里的MessageBox.Show("信息")的意思。
@519740105: 或者是类似于asp.net web form 里那样注册客户端脚本来实现弹出框提示点击确定后跳转页面。
可以直接执行Js代码的,但是你返回的Js方法是在当前页面上已经存在的。
没看懂
@北在北方: 直接看代码吧。
public JavaScriptResult JsTest(string ff)//ff 异步调用传递的方法名 { return JavaScript(ff + "();"); }
比如我写的这个小例子,你在页面上异步请求一下,传递一下Js方法名,他就能直接执行了。
@519740105: ???我没问题啊,我是在帮楼主回答问题呢!
其实也可以用 response.write("<script>alert('');</script>");
我其实是想知道这个Javascript()辅助方法的使用方式。
其实就是Action的执行,只是返回的东西不一样而已。
action的执行一般 get/post 提交 两种方式,如ActionLink应该默认是get提交。
至于是异步ajax提交,需要引用ajax库,如jquery,或者微软自家带的。
需要在前端中使用异步请求才能接受JavaScriptResult时立刻执行,可以在前端调用如下jQ方法:
$.get("/controllname/javascript");