asp.net新手
<div class="form-group">
<div class="col-sm-5">
<p>Showing results for FU <span data-bind="text: selectedFu() ? selectedFu().fuId : ''" /></p>
</div>
</div>
@{
var sfuId = "Bar";
}
@if (sfuId == "Bar") {
<div class="form-group">
<div class="col-sm-12">
<div class="warn">
<span data-bind="text: barDisclaimer"></span>
</div>
</div>
</div>
}
可以工作,但如何指定var sfuId = selectedFu()? selectedFu()。fuId。我已经尝试了var sfuId =“,data-bind =”if:和ko.observable()但似乎无法正常工作。
谢谢你tkestowicz。 knockoutjs.com是一个很棒的网站。如果我搞清楚的话,我会仔细阅读并发布。
答案 0 :(得分:0)
标题(或代码)错误。这样:
@{
var sfuId = "Bar";
}
不是JavaScript,它是用Razor语法编写的C#代码。看看这个例子,你好像想要在C#下访问JavaScript对象。这是不可能的,因为在JavaScript执行之前编译了C#代码。你只能做相反的事情 - 将C#值传递给JS。
我认为你误解了剃刀的目的。它是服务器端模板引擎,这意味着所有代码在浏览器中呈现之前都会执行。另一方面,Knockout是一个JavaScript(客户端)库。
使用KO模板(http://knockoutjs.com/documentation/template-binding.html)代替Razor使其正常工作。
答案 1 :(得分:0)
我不知道asp或c#,但在javascript中我就是这样做的
my_node = document.querySelector("some_node");
// normal/safe method
my_node.getAttribute("data-task");
my_node.setAttribute("data-task", "new_value");
// be modern
my_node.dataset.task;
my_node.dataset.task = "new_value";
答案 2 :(得分:0)
我一直在寻找data-bind =“可见 Tkestowicz建议的网站非常有用。
<div class="form-group">
<div class="col-sm-5">
<p>Showing results for FU <span data-bind="text: selectedFu() ? selectedPpo().fuId : ''" /></p>
</div>
</div>
<div class="panel-body form-horizontal" data-bind="visible: selectedFu() ? selectedFu().fuId : false">
<div class="form-group">
<div class="col-sm-12">
<div class="warn">
<span data-bind="text: barDisclaimer"></span>
</div>
</div>
</div>
</div>