使用Jquery、MVC和Json更新多个部分视图不起作用
update the multiple partial view using Jquery , MVC and Json not working
我正在尝试使用Jquery、MVC和Json更新多部分视图。我的部分视图没有更新
这是我的代码我的视图代码是
@model DropdownGrid.Models.MyMultipleUpdateViewModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.10.2.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script type="text/javascript">
function _Complete(data) {
var JsonObj = $.parseJSON(data.responseText);
alert(JsonObj);
alert(JsonObj.myTest1ViewModel.MyTestUpdate)
alert(JsonObj.myTest2ViewModel.MyTestUpdate)
$("#Div1").html(JsonObj);
$("#Div2").html(JsonObj);
}
</script>
<br>
<br>
<br>
<br>
<fieldset>
<div id="Div1">
@{ Html.RenderPartial("_MyTest1PartialView", Model); }
</div>
<div id="Div2">
@{ Html.RenderPartial("_MyTest2PartialView", Model); }
</div>
</fieldset>
<fieldset>
@using (Ajax.BeginForm("CreateStudent", "GetStudents",
new AjaxOptions { HttpMethod = "Post", OnComplete = "_Complete" }))
{
<input type="submit" value="Submit" />
}
</fieldset>
我的控制器代码是
enter code here
public class GetStudentsController : Controller
{
public ActionResult Index()
{
MyMultipleUpdateViewModel obj = new MyMultipleUpdateViewModel();
obj.myTest1ViewModel = new MyTest1ViewModel();
obj.myTest1ViewModel.MyTestUpdate = "Test1";
obj.myTest2ViewModel = new MyTest2ViewModel();
obj.myTest2ViewModel.MyTestUpdate = "Test2";
return View(obj);
}
[HttpPost]
public ActionResult CreateStudent(MyMultipleUpdateViewModel objuserloginmodel)
{
MyMultipleUpdateViewModel obj = new MyMultipleUpdateViewModel();
obj.myTest1ViewModel = new MyTest1ViewModel();
obj.myTest1ViewModel.MyTestUpdate = "Test1"+DateTime.Now.ToString();
obj.myTest2ViewModel = new MyTest2ViewModel();
obj.myTest2ViewModel.MyTestUpdate = "Test2" + DateTime.Now.ToString();
return Json(obj, JsonRequestBehavior.AllowGet);
}
}
我的视图模型是
public class MyTest1ViewModel
{
public string MyTestUpdate;
}
public class MyTest2ViewModel
{
public string MyTestUpdate;
}
public class MyMultipleUpdateViewModel
{
public MyTest1ViewModel myTest1ViewModel;
public MyTest2ViewModel myTest2ViewModel;
}
它不起作用你能帮我解决一下我的问题吗。
从Action方法返回一个JSON结构,如下
{
"myTest1ViewModel": {
"MyTestUpdate": "Test112/12/2015 5:04:57 PM"
},
"myTest2ViewModel": {
"MyTestUpdate": "Test212/12/2015 5:04:57 PM"
}
}
但是在您的代码中,您试图将json对象传递给html
方法。理想情况下,应该将一些html标记传递给html方法。由于您有一个Json对象,您应该读取Json对象的属性,并显式设置每个元素标记,前提是您的部分视图具有具有唯一id的项。
假设你的局部视图看起来像这个
@model MyMultipleUpdateViewModel
<div id="testUpdate">@Model.myTest1ViewModel.MyTestUpdate </div>
在javascript方法中,您可以在div上设置标记。
function _Complete(data) {
var JsonObj = $.parseJSON(data.responseText);
$("#testUpdate").html(JsonObj.myTest1ViewModel.MyTestUpdate);
// You may set other properties as well.
}
相关文章:
- 谷歌地图没有显示在带有angularjs的第二个部分视图上
- 将多个事件动态添加到多个 Web 视图
- 创建从单个模板继承的多个动态视图
- 在多个网格视图/表上使用相同的函数
- 设计客户端以使用ajax更新多个局部视图
- AngularJs 使用一个指令提供多个模板视图
- AngularJS在第一个页面视图上没有加载
- 角度 UI 路由器为所有状态提供多个命名视图
- 通过单击相关选项卡渲染多个部分视图
- 反应,异步加载具有不同组件的多个部分/视图
- 添加多个分部视图,第一个缺少表单
- 在 Android 中使用多个 Web 视图来模拟 Javascript 线程
- 如何在同一场景中连接两个 Web 视图
- 两个不同视图上的两个按钮调用相同的函数 AngularJS
- 对控制器的两个不同视图中的任何元素使用相同的id
- 呈现多个EmberJS视图时断言失败
- AngularJS/UI路由器:如何使用一个具有多个命名视图的控制器
- 如何将Javascript代码的单独实例附加到N个角度视图
- 使用Jquery、MVC和Json更新多个部分视图不起作用
- 如何将多个网格视图行发送到另一个页面,并在中继器中填充这些行