首页 新闻 会员 周边

ASP.NET MVC AJAX的一个疑问

0
悬赏园豆:30 [已解决问题] 解决于 2013-10-19 13:38
<div id="dlg" class="CreateAblum" title="创建专辑">

//这里更新获得的后台数据以及用JS摄者的txt1的文本 @ViewBag.str;
<input type="text" id="txt1" name="txt1" />

//提交 @using (Ajax.BeginForm("Create", "Picture", null, new AjaxOptions { UpdateTargetId = "dlg", InsertionMode = InsertionMode.InsertAfter, LoadingElementId = "", HttpMethod = "POST", OnSuccess="AddComplet" } )) { <div>@Html.ValidationMessageFor(m => m.Name)</div> <div> @Html.LabelFor(m => m.Name) @Html.TextBoxFor(m => m.Name) </div> <div> @Html.LabelFor(m => m.Type) @Html.DropDownListFor(m => m.Type, ViewBag.AblumTypes as SelectList) </div> <input id="logon" type="submit" value="登录" /> } </div>


后台是这样的

[HttpPost]
public ActionResult Create()
{
ViewBag.str = "11";
return Content("33");
}

 

运行后页面却跑到了一个新的页面去了http://192.168.1.100/Picture/Create

期望是在原来的页面Index更新viewbag的显示的。求大侠指教要怎么做才能不跳转到新的页面,只更新原来页面id为dlg的块

大芝麻的主页 大芝麻 | 初学一级 | 园豆:4
提问于:2013-10-19 12:04
< >
分享
最佳答案
0

你后台有index的action方法吗,你执行index的action应该不会直接跳转到create页面的

收获园豆:15
悟行 | 专家六级 |园豆:12559 | 2013-10-19 13:12
 public ActionResult Index()
        {
            string[] x={"房子","风景","建筑"};
            ViewBag.AblumTypes = new SelectList(x);
            ViewBag.B = true;
            return View();
        }

        //
        // GET: /Picture/Create

        public string Create()
        {
            ViewBag.str = "11";
            return "11";
        } 

后台是这样的

大芝麻 | 园豆:4 (初学一级) | 2013-10-19 13:16

@大芝麻: http://www.cnblogs.com/lori/archive/2012/06/27/2565470.html这个也是一个mvc的登录的,跟你的一样用ajax实现的,你可以参考一下。

悟行 | 园豆:12559 (专家六级) | 2013-10-19 13:22

@大芝麻: 要实现真正的ajax提交方式,你还要改配置文件:

<appSettings> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings>

 view页面也要加js文件的引用:

<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script><script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js") type="text/javascript"></script>

悟行 | 园豆:12559 (专家六级) | 2013-10-19 13:26

@荒野的呼唤: 估计,这才是问题所在!

幻天芒 | 园豆:37175 (高人七级) | 2013-10-19 13:30

@荒野的呼唤: 是啊 我加了这个改了下DIV顺序就行了,谢谢大侠知道

大芝麻 | 园豆:4 (初学一级) | 2013-10-19 13:37

@幻天芒: Bingo!!

大芝麻 | 园豆:4 (初学一级) | 2013-10-19 13:37
其他回答(1)
0

ajax局部刷新

收获园豆:15
Yu | 园豆:12980 (专家六级) | 2013-10-19 12:54

不是指定了局部刷新的元素ID吗,很是不明白求大侠指教

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-10-19 12:59

@大芝麻: 你这是整个表单提交,可以参考一下

 

http://www.cnblogs.com/celery94/archive/2011/01/17/1937494.html

 

其中 GetTime 部分

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2013-10-19 13:01

@Yu: 不是说mvc的异步读写用它的自带的ajax.form方便些吗,这个ajax.form不能实现局部刷新的?搞不好我教程理解错了

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-10-19 13:06

@大芝麻: 是可以的

 

你看看 要更新的DIV 是不是有结构问题 还有 AjaxOptions 是否有问题

 

具体我没试

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2013-10-19 13:22

@大芝麻: 可再参考这个

 

http://blog.csdn.net/aspnet_lyc/article/details/11922965

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2013-10-19 13:27

@Yu: 谢谢 果然DIV有点问题,更新DIV要放在form前面,还有就是楼下那位说的没有引用一个JS文件。真是,教材上都没将这些,害我搞了半天。谢谢大侠知道

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-10-19 13:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册