将MVC连接到knockout.js
我有一个简单的MVC模型,名为将MVC连接到knockout.js,knockout.js,asp.net-core,asp.net-core-mvc,Knockout.js,Asp.net Core,Asp.net Core Mvc,我有一个简单的MVC模型,名为邀请,它看起来像这样: public class Invitation { public string InvitedUserDisplayName { get; set; } public string InvitedUserEmailAddress { get; set; } } 我想在视图中使用knockout.js创建一个用户界面。在这里,用户可以输入两个字段的值,并按下发送邀请的按钮(在我的控制器中
邀请
,它看起来像这样:
public class Invitation
{
public string InvitedUserDisplayName { get; set; }
public string InvitedUserEmailAddress { get; set; }
}
我想在视图中使用knockout.js创建一个用户界面。在这里,用户可以输入两个字段的值,并按下发送邀请的按钮(在我的控制器中调用邀请方法,传递用户刚刚指定的邀请
对象)
我找不到任何针对初学者的可靠文档来解释这一基本过程。到目前为止,我的文档有点混乱:
@Model = ViewModel.Invitation
<script src="~/lib/knockout/dist/knockout.js"></script>
@model Invitation
<form asp-controller="Home" asp-action="SendInvite" method="post">
Email: <input asp-for="InvitedUserEmailAddress" data-bind="value: invitedUserDisplayName"/> <br />
Display Name: <input asp-for="InvitedUserDisplayName" data-bind="value: invitedUserEmailAddress"/> <br />
<button data-bind="click: sendInvitation">Send Invite</button>
</form>
<script type="text/javascript">
var viewModel = {
invitedUserDisplayName: @Model.InvitedUserDisplayName,
invitedUserEmailAddress @Model.InvitedUserEmailAddress
this.sendInvitation = function () {
//call controller action, passing the newly created Invitation.
}
};
ko.applyBindings(viewModel);
</script>
@Model=ViewModel.Invitation
@模特邀请
电子邮件:
显示名称:
发送邀请
var viewModel={
invitedUserDisplayName:@Model.invitedUserDisplayName,
invitedUserEmailAddress@Model.invitedUserEmailAddress
this.sendInvestment=函数(){
//调用控制器操作,传递新创建的邀请。
}
};
应用绑定(视图模型);
我会推荐类似的方法(还有其他方法)
在控制器中,将对象转换为JSON(我使用JSON.Net库,因为它是最好的),有关更多信息,请参阅
public ActionResult MyAction()
{
var viewModel;
var objectIWantToUse;
//this is a string!
viewModel.objectIWantToUseJson = JsonConvert.SerializeObject(objectIWantToUse);
return View(viewModel);
}
那么在你看来,
@Model = viewModel
<script src="~/lib/knockout/dist/knockout.js"></script>
<div id="someDOM" data-modeljson="@viewModel.objectIWantToUseJson">
...
将您的模型转换为Json,在某个地方编写它,然后在客户端使用javascript读取它format@Liam你知道有没有一些关于如何做这一切的超基础文档吗?从头到尾。我对前端开发非常陌生。我已经添加了一些简短的代码示例,说明你需要做什么考虑一下。这不是很广泛,因为主题相当广泛,但它有望为您指出正确的方向。谢谢,应该能够找出其余的:)viewModelInJson来自哪里?我误解了您的问题@Green_qaueviewModelFromJson
只是一个用于保存从json创建的对象的变量?
var domElement = document.getElementById('someDOM');
var viewModelFromJson = JSON.Parse(domElement.dataset.modeljson);
ko.applyBindings(viewModelInJson);