【发布时间】:2017-12-09 14:55:17
【问题描述】:
我正在使用 ASP.Net WebAPi、MVC 和 Knockout 创建网页。
我有一个普通的 MVC 控制器,可以在需要时加载页面:
[Authorize]
public class AdminController : Controller
{
public ActionResult Clients()
{
return View();
}
public ActionResult ClientEdit(int? Id)
{
return View();
}
}
一旦页面加载完毕,我的 Knockout 模型就会负责数据的加载。因此,“客户端”控制器只是加载所有客户端的列表。在该屏幕上,用户可以单击客户端旁边的“编辑”,然后页面将导航到“客户端编辑”控制器,该控制器需要一个 id。
所以,我的淘汰赛点击事件在淘汰赛视图模型中如下所示:
self.EditClick = function () {
if (this.ClientId && typeof this.ClientId !== 'undefined') {
window.location.href = "/Admin/ClientEdit/" + this.ClientId;
}
else
window.location.href = "/Admin/ClientEdit/";
}
(它处理“新建”按钮和编辑按钮,因此是“如果”)
一旦我重定向,MVC 控制器就会加载页面,并且 URL 是:
然后我加载淘汰模型,并想进行 API 调用以获取数据...
页面加载后,我想将视图模型绑定到页面。这是我目前的视图模型:
function AdminClientEditor() {
var self = this;
self.Name = ko.observable("");
self.ContactName = ko.observable("");
ko.applyBindings(new AdminClientEditor(), $("#clienteditor")[0]);
因此,我将创建一个 $.get 方法,该方法调用一个 webAPI 方法,该方法将根据 id 返回数据。我只需要以某种方式获取 ID。
但是,我如何从 URL 中获取 ID(在本例中为“1”? 而且,这是实现我想要做的事情的正确方法吗?
【问题讨论】:
标签: javascript jquery asp.net asp.net-mvc knockout.js