2017-02-28 62 views
0

我試圖混合ASP.NET MVC剃刀和淘汰賽的語法如下:混合剃刀和淘汰賽語法數據綁定

<a data-bind="text: CityName, attr: { href: /search/ + 'CityName' + '/@CurrentCategory}"> 
</a> 

CityName是淘汰賽性質和@CurrentCategory是一個asp.net mvc的財產。

Visual Studio給我一個關於語法的錯誤。
有沒有可能這樣做?

+0

您能澄清一下您期望的HTML結果嗎? –

+1

您需要提供有關該錯誤的更多信息才能解決問題。您可以將剃鬚刀與任何客戶端腳本混合使用,以確保您正確地轉義它。我使用的一種模式是@ Html.Raw()。試試看看會發生什麼。 –

回答

4

使用這個代替:

<a data-bind="text: CityName, attr: { href: '/search/' + CityName + '/@CurrentCategory' }"> 
</a> 

您需要' S和不變量,或動態部分將字符串括起來的靜態或文字部分。

此外,請確保您在Razor插入的任何片段中轉義任何' s。以上可以爲了改寫爲實現它是這樣:

<a data-bind="text: CityName, attr: { href: '/search/' + CityName + '/@CurrentCategory.Replace("'", "''")' }"> 
</a> 
0

我們需要知道的錯誤能夠幫助您準確 同時,你可以嘗試在淘汰賽控制器使用計算觀察到的,所以創建:

self.Url = ko.computed(function(){ 
    return '/search/' + self.CityName() + '/@CurrentCategory'; 
});