【问题标题】:How to convert javascript variable to C# string in Razor View MVC?如何在 Razor View MVC 中将 javascript 变量转换为 C# 字符串?
【发布时间】:2015-08-06 19:16:28
【问题描述】:

我有一个模型,它有一个属性为Dictionary<string, bool>。有多个链接,我在单击和传递链接 ID 时调用相同的 javascript 方法。模型字典键将是链接 ID。所以我想使用这个键根据某些条件设置字典值 true 或 false。我尝试了很多但无法做到,请帮助我。 我想做这样的事情。

function LinkClick(id){
    string strKey = id; //strKey is C# string
    @Model.DictionaryIdSet[strKey] = true;
}

【问题讨论】:

  • 为什么要混合使用 razor 和 JavaScript?你真的需要选择一个。如果你使用 JS,你将使用 AJAX 远程调用你的 MVC Api 控制器。
  • Razor 在服务器上运行,存档的唯一方法是将此值发布到服务器。
  • "我想使用此键根据某些条件设置字典值 true 或 false" 字典是服务器端代码的一部分。影响它的唯一方法是将值发布到服务器(例如使用 AJAX)。您对服务器端和客户端的工作方式感到困惑。
  • 请记住,您的 Razor 视图是在服务器端执行的,之后它们会生成 HTML 并发送到客户端浏览器。并且是执行JS的客户端浏览器。所以,基本上实现你想要的东西是不可能的。唯一的方法是@Teagan42。如果您可以使用该词典提供有关您最终目标的更多背景信息,那么给您一些建议会更容易。

标签: javascript c# asp.net-mvc asp.net-mvc-4 model-view-controller


【解决方案1】:

您不能在 js 代码中使用 C# 对象(在客户端),但您可以做的是

  1. 将您的字典获取为 json - 请参阅 this post

  2. 然后发布like this

【讨论】:

    【解决方案2】:

    试试这个

      @{
               Model.DictionaryIdSet[strKey] = true;
      }
    

    【讨论】:

    • 请解释你的代码做了什么以及为什么它可以解决问题。只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。如果只是猜测,我还建议您不要发布答案。一个好的答案将有一个合理的理由说明它为什么可以解决 OP 的问题。
    • 这不是猜测,我在我的项目中使用了上面的代码并且效果很好。
    • 那么请编辑答案以解释这一点。只是用代码说“试试这个”的答案并不能解释太多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2017-12-30
    • 2014-10-26
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多