knockout.js将ViewModel绑定到视图出错

leon51 2018-12-05 10:20:38
从这周开始我的Asp.net MVC自学之旅,感谢大家的帮助。
下面是书上的一个例子

//控制器中的代码
public ActionResult Advanced()
{
var person = new Person
{
FirstName = "Eric",
LastName = "McQuiggan"
};
return View(person);
}

视图中的代码:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

@{
ViewBag.Title = "Advanced";
}

<h2>Hello <span data-bind="text:getName()"></span></h2>
@section Scripts{
<script>
function ViewModel(firstName, lastName) {
var self = this;
self.name = first + ' ' + lastName;

self.getName = function () {
return self.name;
};
};
var viewModel = new ViewModel('@Model.FirstName', '@Model.LastName');
ko.applyBindings(viewModel);
</script>
}

以上应该输出“Hello Eric McQuiggan”,但实际只输出了"Hello ",请问是哪里出错了?
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfgrtyu 2018-12-05
  • 打赏
  • 举报
回复
代码不全,根本没看见hello
  • 打赏
  • 举报
回复
至于说你的 @Model.FirstName @Model.LastName 为什么为 null 或者空串,那确实是 asp.net 问题。 但是调试的前提是你首先对 knockout 有信心,这个时候就不会拿 knockout 的 data-bind 代码来同时问这类问题。而是直接把代码简化,直接问 asp.net MVC 的问题了。
  • 打赏
  • 举报
回复
你这个跟 asp.net 毫无关系。建议你学习 knockout 的时候,不要扯上 asp.net 干扰你的学习。
  • 打赏
  • 举报
回复
knockout 对于 vm 中可双向绑定到 v 的属性,使用 ko.observable("1234") 这类函数来定义属性,或者使用一个 ko.purecomputed(....) 函数来定义行为,而不是一个简单的 js (字符串)对象或者简单的自定义 js 函数。简单的 js 对象或者简单的自定义函数,它运行时是不会自动更新 v 层 html 标签的。
leon51 2018-12-05
  • 打赏
  • 举报
回复
犯了一个非常低级的错误

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧