【问题标题】:Is it possible to reference ViewData within a script block in ASP.NET MVC?是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?
【发布时间】:2010-09-25 13:13:39
【问题描述】:

我想使用 jQuery 为按钮添加单击处理程序,但处理程序需要引用控制器提供的数据。有没有办法在 ASP.NET MVC 的脚本块中访问 ViewData?还是需要在控制器中构建脚本?

【问题讨论】:

    标签: jquery asp.net-mvc


    【解决方案1】:

    如果脚本块在 ASP.NET 页面中,那么您可以引用它...

    例如:

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('#group-edit-form').validate({
                rules: {
                    title: {
                        required: true,
                        remote: '<%=Url.Action("ValidateGroupName", new { id = ViewData["GroupId"] }) %>?parentId=' + getParentId()
                    }
                },
                messages: {
                    title: {
                        required: getMessage (7002),
                        remote: '<%= ((MessagingModel)ViewData["Messages"]).GetMessage (9001) %>'
                    }
                }
            })
    
        });
    </script>
    

    当运行时引擎处理页面时,会评估 块中的所有内容,无论其在页面中的位置如何。

    【讨论】:

    • 执行此操作时是否获得 Intellisense?
    • 很遗憾没有,VS 将其作为字符串的一部分读取,至少在上面的示例中):
    • VS 2008 在您的 aspx 页面上为您提供智能感知。
    • 我在脚本块或 HTML 标记内都没有得到智能感知。
    • 当 Intellisense 在脚本块中时,我没有得到它。对于像上面这样的场景,我会在脚本块之外为智能感知创建标签,然后将其复制'n'粘贴到脚本标签区域中。有点笨重。
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多