2013-04-23 66 views
5

我有ATTR綁定的淘汰賽工作得很好:剃刀模板編輯器不喜歡我的淘汰賽ATTR綁定語法

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

但是,語法在Visual Studio中高亮顯示拋出「未終止字符串常量」錯誤一旦插入到href字符串中的任何模型屬性。

我已經嘗試過'@()'和'@:',但似乎沒有任何東西讓編輯感到高興。

+0

代碼是否:

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

的語法高亮可以通過改變上述以下被抑制正確渲染並在瀏覽器中工作?如果是,那麼你不應該關心VS的錯誤信息......剃刀intelisense仍然不是100%正確的。順便說一下你使用哪個版本的VS? 2010? 2012? Vanilia或與Resharper/CodeRush /等? – nemesv 2013-04-23 21:29:43

+0

@nemesv:我正在使用2012 Update 2 vanilla。代碼在多個瀏覽器上呈現正確並且工作得很好。我只是認爲VS錯誤會引起我們其他一些程序員或標記開發人員的關注... – 2013-04-23 21:33:20

+1

您是否曾嘗試將整個'href'事先分配給局部變量,然後使用它將值放入,以便您沒有任何單引號? – Tyrsius 2013-07-23 17:28:30

回答

-4

爲什麼不使用常規的Html.ActionLink?

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

我有一個類似的問題,我想通過控制器動作的URL(由Razor視圖的UrlHelper實例所提供)到我的視圖模型的功能將在jQuery的AJAX後調用中使用。

下面的標記工作在瀏覽器中,但給人的語法高亮在Visual Studio:

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