我试图将控制器中的值传递给视图,但没有用。
我正在使用工作正常的Ajax脚本将值从视图传递到控制器。然后,我要做的就是将该值传递给Index控制器,并将其显示在索引视图中。
这是我的控制器:
static string global;
public ActionResult Index(string id)
{
TempData["var"] = id;
return View();
}
[HttpPost]
public object functon(string data)
{
return Index(data);
}
这是我的观点:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<input class="form-group" id="input"/>
<button class="btn btn-success" id="send">Send</button>
@if ((string)TempData["var"] == null)
{
<span>Check</span>
}
else
{
<h1>@TempData["var"].ToString()</h1>
}
@* SCRIPT *@
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#send").click(function () {
$.ajax({
type: "POST",
url: "/Acceptvalue/functon",
data: '{data: "' + $("#input").val() + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
},
failure: function (response) {
},
error: function (response) {
}
});
});
});
</script>
答案 0 :(得分:1)
我使用ViewModels
public virtual ActionResult Method()
{
MyViewModel vm = new MyViewModel();
vm.Name = "MyName";
return View(MVC.Controller.Views.MyView, vm); //also works with partial views
}
然后在我看来:
@model MyProject.ViewModels.MyViewModel
<h2>@Model.Name</h2>
答案 1 :(得分:-1)
使用ViewBag并将其填充到您的控制器中:
ViewBag.var = id
,然后在视图中访问它:
@if(Viewbag.var == null)
另外,使用以下命令编辑function()
:return RedirectToAction("Index", new { id = data });