【问题标题】:dynamically returning javascript function from controller and passing it to cshtml从控制器动态返回javascript函数并将其传递给cshtml
【发布时间】:2013-05-06 11:27:11
【问题描述】:

我的控制器是...

public ActionResult CreateEmailStep5()
{
    MyViewModel mvm = new MyViewModel();
    mvm.myStringProperty = @"$(document).ready(function ($) {
        $('#Help').MyTour(
        {
          tourType: 'step',
          overlayOpacity: 0.5,
          .......
          .......
        });
    });"
    return View(mvm);
}

我对我的 .cshtml 的尝试是什么样的......

@model MyProj.ViewModels.MyViewModel
<script type="text/javascript">
    Model.myStringProperty;
</script>

我尝试了几种方法,例如 Response.Write、HtmlDecode 和 HtmlEncode... 发生的事情是...我的单引号正在转换为它的 ascii " ' "

当我尝试时...

Response.Write(@HttpUtility.HtmlDecode(Model.myStringProperty).ToString());

而不是

Model.myStringProperty;

在我的 .cshtml 中,当我添加了所有必需的链接时,未定义其给出的错误 $

【问题讨论】:

  • 为什么要在视图中动态构建 javascript?您是否打算将一些值传递给您的 javascript?
  • 我需要它,因为我不知道我需要执行多少步骤。此信息将来自数据库
  • 让我知道是否有办法这样做
  • 基本上我需要在服务器上动态创建javascript函数然后我想将它注入.cshtml ....

标签: c# javascript jquery asp.net-mvc-3 razor


【解决方案1】:

您想将您的 razor 变量转换为 html 'type'

尝试使用

@Html.Raw(Model.myStringProperty)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    相关资源
    最近更新 更多