基础MVC与JSON数据交互问题

gaopeng1988 2011-03-03 10:38:05

<table>
<tr>
<td>标题:</td>
<td><input type="text" id="title" /></td>
</tr>
<tr>
<td>内容:</td>
<td><input type="text" id="content" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" id="btn" value="Create" /></td>
</tr>
</table>
<script language="javascript" type="text/javascript">
$(function () {
$("#btn").click(function () {
var s_Title = $("#title").val;
var s_Content = $("#content").val;
var json = { "Title": s_Title, "Content": s_Content };
$.ajax({
type: "POST",
url: "/Json/Create",
data: json,
dataType: "json",
success: function (data) {
window.location.href = "/Json/Index";
}
});
});
});
</script>

我在Action中怎样才能得到数据?
我用的是VS2010 MVC3

希望厉害的高手能够帮忙,最好贴出代码用Entity 操作数据库的代码也请一并带上。


另外希望不要给我网址参考。如果可能的话请把用Entity 操作数据库的增删改查方法都带上。
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2011-03-08
  • 打赏
  • 举报
回复
实际上是JS异步调用问题于返回类型的处理吗.
没什么的,就那么搞就OK了。
showenxxx 2011-03-06
  • 打赏
  • 举报
回复
js端你已经知道怎么做了
在controller里:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult GetData()
{
//处理data,你用什么ef, linq to sql都可以
return Json(data);
}
gaopeng1988 2011-03-03
  • 打赏
  • 举报
回复
$("#title")
gaopeng1988 2011-03-03
  • 打赏
  • 举报
回复
后台得到的值是 [object Object]
机器人 2011-03-03
  • 打赏
  • 举报
回复
你取元素的语法对不?是 $("#title") 还是 $("title") ?

最近JS用的少了,这块不熟悉。
机器人 2011-03-03
  • 打赏
  • 举报
回复
想在Request里得到json串,需要定义一个<input type="hidden" id="JsonContent" />
组个新的json把刚才的json串放进去就可以了。
var json = { "Title": s_Title, "Content": s_Content };
var json1 = { "JsonContent": json.toString() };


data: json,

改为

data: json1,

---> 后台: Request["JsonContent"]
gaopeng1988 2011-03-03
  • 打赏
  • 举报
回复
按照你说的,改过之后,我用alert了一下s_Title
结果还是undefined
机器人 2011-03-03
  • 打赏
  • 举报
回复
var s_Title = $("#title").value;
var s_Content = $("#content").value;

gaopeng1988 2011-03-03
  • 打赏
  • 举报
回复
我用Requst["Title"]得到的值是"undefined"

而且我想直接能够接收JSON那种 有没有更详细一点的
机器人 2011-03-03
  • 打赏
  • 举报
回复
Requst["Title"]
Request["Content"]


Entity操作?
using(var ctx = new YourEntities())
{
// 增:
SomeTable addedObj = new SomeTable();
// entity 属性赋值
addedObj.Property1 = "...";
ctx.SomeTable.AddObject(addedObj);
// 提交数据库
ctx.SaveChanges();

// 删
var deletedObj = ctx.SomeTable.Where(x => x.ID == "123").FirstOrDefault();
if (deletedObj != null)
ctx.SomeTable.DeleteObject(deletedObj);
// 提交数据库
ctx.SaveChanges();

// 改
var updatedObj = ctx.SomeTable.Where(x => x.ID == "456").FirstOrDefault();
if (updatedObj != null)
updatedObj.Name = "xxx";
// 提交数据库
ctx.SaveChanges();

// 查
var query = from s in ctx.SomeTable
where s.ID == "xxx"
select s;


}
机器人 2011-03-03
  • 打赏
  • 举报
回复
查了下jquery的帮助文档。

1. 如果要后台从Request["title"]能取到值的话:

var s_Title = $("#title")[0].value;
var s_Content = $("#content")[0].value;

2. 如果要后台取得json字符串的话,ajax侧需要按querystring传递
还需要个json2string的方法:
function json2str(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return json2str(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}


$(function () {
$("#btn").click(function () {

var s_Title = $("#title")[0].value;
var s_Content = $("#content")[0].value;

alert(s_Title + ":" + s_Content);

var json = { "Title": s_Title, "Content": s_Content };
var jsonData = json2str(json);

$.ajax({
type: "POST",
url: "WebForm1.aspx",
data: "JsonData=" + jsonData,
dataType: "json",
success: function (data) {
alert(data);
}
});
});
});

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧