我正在构建一个 MVC3 Web 应用程序,并且正在使用 knockoutjs。应用程序中有两个视图。SetUpNewCompany 和 ManageAccount。要设置新公司,用户首先输入帐号并单击搜索。如果帐号已经存在,用户可以单击按钮进入 ManageAccount 视图。在 SetUpNewCompanyController 中,我使用 RedirectToAction 方法进行重定向。但是,执行 ManageAccount 中的 Index2 操作时,不会显示视图。如果我输入完整的 URL,则会显示视图。
SetUpNewCompanyController.cs
[HttpPost]
public RedirectToRouteResult RedirectToManageAccount(string accountNumber)
{
return RedirectToAction("Index2", new RouteValueDictionary(new {controller=
"ManageAccount", companyId = "7e96b930-a786-44dd-8576-052ce608e38f" }));
}
当单击按钮时,上面的函数由下面的函数调用
self.redirectToManageAccount = function () {
var accountNumber = "7e96b930-a786-44dd-8576-052ce608e38f";
$.ajax({
type: "POST",
url: "/SetUpNewCompany/RedirectToManageAccount",
data: { accountNumber: accountNumber },
success: function (data) {
},
error: function () {
}
});
}
ManageAccountController.cs
public ActionResult Index2(String companyId)
{
var viewModel = new Models.Index();
List<String> compList = new List<String>();
compList.Add("MyCompany");
List<String> usersList = new List<String>();
usersList.Add("User1");
viewModel.Users = usersList;
viewModel.Companies = compList;
viewModel.CompanyId = companyId;
viewModel.Role = "Role1";
return View("ManageAccount",viewModel);
}
生成的 URL 是
http://localhost:53897/ManageAccount/Index2?companyId=7e96b930-a786-44dd-8576-
052ce608e38f
Firebug 中的控制台窗口显示
GET http://localhost:53897/ManageAccount/Index2?companyId=7e96b930-a786-44dd-8576-
052ce608e38f 200 OK and the spinner keeps spinng
另外,如何获取下面的 URL 而不是带有查询字符串的 URL
http://localhost:53897/ManageAccount/Index2/7e96b930-a786-44dd-8576-052ce608e38f