Razor模板编辑器不喜欢我的Knockout attr绑定语法

时间:2013-04-23 21:21:22

标签: asp.net-mvc-4 knockout.js razor-2

我有一个Knockout attr绑定工作得非常好:

<a data-bind="attr: { href: 'Action?destination=' + '@Model.Property' + '&entityId=' + Id }">Select</a>

但是,一旦将任何模型属性插入到href字符串中,Visual Studio中的语法高亮显示会抛出“未终止字符串常量”错误。

我尝试过'@()'和'@:',但似乎没有什么能让编辑高兴。

2 个答案:

答案 0 :(得分:1)

我有一个类似的问题,我希望将控制器操作URL(由Razor视图的UrlHelper实例提供)传递给我的viewmodel函数,以便稍后在jQuery AJAX调用中使用。

以下标记在浏览器中有效,但在Visual Studio中提供语法高亮显示:

<button data-bind="click: function (data) { someFunction(data, '@Url.Action("SomeAction", "SomeController")') }">Action!</button>

通过将上述内容更改为以下内容,可以抑制语法突出显示:

<button data-bind="@("click: function (data) { someFunction(data, '" + Url.Action("SomeAction", "SomeController") + "') }")">Action!</button>

答案 1 :(得分:-4)

为什么不使用常规的Html.ActionLink?

@Html.ActionLink("Action", "Select", new { destination = Model.Property, entityId = Model.Id });