我创建了一个内置AccountModel
和AccountController
的登录页面。现在我有另一个名为TestController
的控制器,它将数据从数据库发送到我的TestView
。
我现在希望将TestController
发送的数据发送到AccountView
。
基本上我要做的是在帐户视图的登录页面上显示Feed,问题是数据来自我的TestController
,所以我现在不知道如何传递这些数据。
所以我有这个:
我想在#1视图中显示#2中的内容。这可能吗?
答案 0 :(得分:3)
有几种方法可以做到这一点。我强烈建议您查看教程视频here
您可以在TestController中创建一个返回局部视图的动作。
public ActionResult Test()
{
return PartialView("index.cshtml");
}
在您的login.cshtml视图中,您将通过调用@ Html.Action(“Test”,“TestController”)来显示TestController的局部视图
答案 1 :(得分:1)
创建一个返回类型为ViewResult的操作,该操作将返回带有字符串参数的重载ViewResult。该字符串是视图的名称。
或者您可以使用RedirectAction重定向到其他控制器的操作。我认为这就是你所追求的目标。
答案 2 :(得分:0)
如果要与数据一起重定向到“帐户”页面。以下是我的建议。
public ActionResult PostToAccount() {
var accountModel = new AccountModel();
return RedirectToAction("Account", "Account", accountModel);
}
如果您希望基于ajax,其中“帐户”视图和“测试”视图都在单个页面中呈现。尝试ajax方法
Login.cshtml
< div id =“feed”>< / div>
Index.cshtml
查看
<script>
function postData() {
$.ajax({
url: '/Test/PostToAccount'
data: {
someData: 'feed'
},
success: function(data) {
$("#feed").data(data.result);
}
});
}
</script>
<button onclick="postData"></button>
控制器
public class TestController : Controller {
public ActionResult PostToAccount(string someData) {
var accountModel = new AccountModel();
accountModel.Feed = feed;
return View("~/Views/Test/Index.cshtml", accountModel);
}
}