最近公司准备开发手机版网站,使用到的技术是:jQuery mobile + MVC3而且我们公司没有对MVC3非常熟练的人员,纯粹的自学自编此为前提目前出现了一个情况页面大家将就着看,还没有进行过美化
(Index页面图)
通过点击Index页面左上角的按钮,可进入添加(Create)页面(Create页面图)
将Create页面中的内容填写完整后,点击Submit按钮提交
数据处理完成后自动跳回Index页面中
控制器中的代码如下:[HttpPost]
public ActionResult Create(NewsClass newsclass)
{
if (ModelState.IsValid)
{
db.News.Add(newsclass);
db.SaveChanges();
return RedirectToAction("Index");
} return View(newsclass);
}
但是现在问题就出来了,第一次添加数据成功并跳转回Index页面后,左上角的添加按钮失效了
点击不会在跳到Create页面中后来细心的同事发现了一个问题
第一次打开网站时Index页面的URL:
添加数据后跳转回来时Index页面的URL:
也就是说,我们添加完成后进行的页面跳转,页面显示的内容已经是Index的内容了,但是他的URL依旧是Create的
而我们Index页面中左上角的Create功能链接同样是:
我认为可能这个就是Create功能点击失效的原因,但是为什么Url没有改变?请大神们指教。MVC3asp.netjQuery MobileRedirectToAction
(Index页面图)
通过点击Index页面左上角的按钮,可进入添加(Create)页面(Create页面图)
将Create页面中的内容填写完整后,点击Submit按钮提交
数据处理完成后自动跳回Index页面中
控制器中的代码如下:[HttpPost]
public ActionResult Create(NewsClass newsclass)
{
if (ModelState.IsValid)
{
db.News.Add(newsclass);
db.SaveChanges();
return RedirectToAction("Index");
} return View(newsclass);
}
但是现在问题就出来了,第一次添加数据成功并跳转回Index页面后,左上角的添加按钮失效了
点击不会在跳到Create页面中后来细心的同事发现了一个问题
第一次打开网站时Index页面的URL:
添加数据后跳转回来时Index页面的URL:
也就是说,我们添加完成后进行的页面跳转,页面显示的内容已经是Index的内容了,但是他的URL依旧是Create的
而我们Index页面中左上角的Create功能链接同样是:
我认为可能这个就是Create功能点击失效的原因,但是为什么Url没有改变?请大神们指教。MVC3asp.netjQuery MobileRedirectToAction
估计问题是在 :
return RedirectToAction("Index");
return View(newsclass);
这2个上面
我把MVC3中Action可以调用的函数都测试过了都不行就是URL不转变。
我把MVC3中Action可以调用的函数都测试过了都不行就是URL不转变。
主要我参考的MVC3的用例会不会是没有框架导致的?
这个可以有,但是基础页面已经成型了,如果全部在改为 DIV的显示隐藏 工作量太大了
$('#frmLogin').submit(function () {
if (true) {
$.ajax({
url: "Account/Login",
type: "post",
data: $('#frmLogin').serialize(),
success: function (msg) {
if (msg == "success")
$.mobile.changePage('Menu/Index', { transition: "slide" });
else
alert('登录失败。');
},
error: function (msg) {
alert(msg);
}
});
}
return false;
});
});上面的JS代码中data: $('#frmLogin').serialize(),这句则是将form表单中的数据完全序列化,form中的各个元素的name属性遵守于Model类中的字段名称一致接下来最主要则是Action中需要进行的代码:[HttpPost]
public void Login(WapOA.Models.UserInfo model)
{
bool isSuccess = false;
Response.ContentType = "text/html";
//编写Action中所需运行的代码
if (isSuccess)
{
Response.Write("success");
}
else
{
Response.Write("error");
}
}
因为前台的Ajax已经进行了页面跳转的处理,所以在Action中,我去掉了默认的ActionResult的返回值改为了void,交由Ajax进行页面跳转最终实现了页面跳转。