【问题标题】:Add URL.Action to javascript method in Razor View将 URL.Action 添加到 Razor 视图中的 javascript 方法
【发布时间】:2016-10-19 07:26:21
【问题描述】:

我有一个关于如何将我的 Url Action 放入 razor 视图的问题:

@Html.EditorFor(m => m.MyTypes, false, new {id = "myId", onchange = "onMyTypeChange('Url.Action("GetMyFields", "MyController")')"})

你知道如何解决它吗?

【问题讨论】:

  • 前导' 在哪里?你在"MyController")' 之后有一个结尾',但前导在哪里?
  • 我修好了,但现在还在工作
  • 试试'@Url.Action
  • @BviLLe_Kid:不正确。只有保留关键字才需要前缀@,比如@class,因为class是关键字,否则会被误解。 id 不是关键字,没问题。
  • @ChrisPratt 啊,好吧,我不知道。但是他的onchange需要前缀@对吧?

标签: javascript .net asp.net-mvc razor url.action


【解决方案1】:

这行代码的语法似乎存在一些问题。

@Html.EditorFor(m => m.MyTypes, false, new {id = "myId", onchange = "onMyTypeChange('Url.Action("GetMyFields", "MyController")')"})

您的第二个参数false 没有用,因为从技术上讲,它应该是string 类型,因为它是基于thistemplateName

正如 Chris Pratt 和我所讨论的,在 MVC 5.1+ 中,您必须使用 new { htmlAttributes = new {...} } 传递您的 HTML 属性。

这应该有助于解决您的问题。

@Html.EditorFor(m => m.MyTypes, new { htmlAttributes = new { id = "myId", onchange = "onMyTypeChange('" + Url.Action("GetMyFields", "MyController") + "')" } })

【讨论】:

  • @ChrisPratt 感谢您的编辑哈哈,现在还早,我不知道为什么我在里面写了那句关于前缀@ 哈哈完全忘记了关键字讨论.. 去邓肯甜甜圈我去
  • 没问题。我花了 4 次编辑才能正确编辑;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 2014-06-18
  • 2016-04-15
  • 2012-02-08
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
相关资源
最近更新 更多