【问题标题】:Access Javascript variable in Razor code在 Razor 代码中访问 Javascript 变量
【发布时间】:2012-04-03 08:51:15
【问题描述】:

我想在从 Razor 页面调用的 C# 方法中传递 javascript 变量。我可以知道我该怎么做吗? (我参考了这个link,但它对我不起作用。)

<script type="text/javascript">
    function User(userID) {
                 var redirectUrl = '@Url.Action("AddEditUser", "User")';
                 window.location.href = redirectUrl + '/' + @SomeMethod("stringvalue",**userID**);
}

这里的 userID 是 JS 对象,我想传入我的服务器端方法。 我收到诸如“类型或命名空间定义,或预期文件结尾”和“预期”之类的错误。

编辑文本:

我的加密代码在服务器端,我想使用加密数据发出 AJAX 请求。如何在 AJAX 请求中发送加密数据?

【问题讨论】:

    标签: javascript asp.net-mvc-3 razor


    【解决方案1】:

    您将需要进行 ajax 调用并解析参数服务器端,或创建与您在 razor 语法中使用的函数等效的客户端。 没有经验的可以找ajax教程,听说jQuery很不错。

    【讨论】:

    • 我的主要要求是对查询参数进行加密,然后向服务器发送请求。因此,在每个页面中添加此方法并不好。在 MODEL 中添加包含加密数据的属性或者发出 Ajax 请求更好(考虑性能)
    • 你想在哪里赢得性能,客户端还是服务器端?如果要加密以将其存储在数据库中,则可能需要在服务器上对其进行加密,如果要对其进行加密以将其安全地发送到要使用 SSL 的服务器。
    【解决方案2】:

    你不能这样做,因为 razor 在页面的渲染时间内起作用。 UserID 在渲染时不可用,这就是为什么不能将它作为变量传递给服务器代码的原因。

    如果你需要在运行时调用SomeMethod,你可以向它发出ajax请求。

    【讨论】:

    • 我的主要要求是加密查询参数,然后向服务器发送请求。在 MODEL 中添加包含加密数据的属性或者发出 Ajax 请求更好(考虑性能)是不是很好?
    • 为了获得更好的性能,您可以生成一个动作,女巫将采用 UserID 和其他参数并重定向到您的动作,并在 javascript 中调用此动作。这样您就可以通过一个请求获得结果。
    • 但问题是,我正在发出 ajax 请求,这将使数据对用户可见,我想限制查看 UserID 和其他参数。我已经编辑了与我的目的相关的问题。
    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多