我正在尝试将ASP.NET MVC Razor和Knockout语法混合在一起:
<a data-bind="text: CityName, attr: { href: /search/ + 'CityName' + '/@CurrentCategory}">
</a>
其中CityName
是淘汰赛属性,@CurrentCategory
是asp.net mvc属性。
Visual Studio给出了关于语法的错误 有可能这样做吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
我们需要知道错误才能准确地帮助您 同时你可以尝试使用计算的observable,所以在你的淘汰控制器中创建:
self.Url = ko.computed(function(){
return '/search/' + self.CityName() + '/@CurrentCategory';
});