jquery ajax/post/get 传参数给 mvc的action

时间:2021-09-15 08:02:11

jquery ajax/post/get 传参数给 mvc的action
1.ActionResult Test1   
2.View  Test1.aspx
3.ajax page
4.MetaObjectMigration.cs     string json convert to class
5.相关的代码下载(包含用的相关类, jquery.json.js等)

ActionResult Test1

public ActionResult Test1(string nameJS, UserInfoInputData model, string js)
{
UserInfoInputData userinfo = new UserInfoInputData();
if (!string.IsNullOrEmpty(js))
{
userinfo = (UserInfoInputData)js.ToInputDataObject(typeof(UserInfoInputData));
} ViewData["Time"] = model.Name + " :" + userinfo.Name;
ViewData["Time2"] = model.age;
ViewData["Message"] = "Test1 :" + nameJS + " :" + typeof(UserInfoInputData).ToString(); ViewData["js"] = userinfo.ToJSON(); return View();
}

Test1.aspx

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test1</title>
</head>
<body>
<div>
The current time is: <%= DateTime.Now.ToString("T") %>
<br/><br/>
BO:<%=ViewData["Time"] %>
<br/><br/>
BO2:<%=ViewData["Time2"] %>
<br/><br/>
Message:<%=ViewData["Message"] %>
<br/><br/>
<%=ViewData["js"]%>
</div>
</body>
</html>

ajax page   四种写法

function test(parameters) {
var sjson = '{ "name~!@#$%^&*(){}|:\"<>?/.,\';\\[]v-name": "nvar", "desc": "des" } ';
var sjs = '{"Name":"jsname", "age":3}';
//get post 都可以
$.post("Test1", "nameJS=" + encodeURIComponent(sjson) + "&model.name=modelName&model.age=3" + "&js=" + encodeURIComponent(sjs)); //model.name model.Name 都可以
var json = { "nameJS": "~!@#$%^&*(){}|:\"<>?/.,';\\[]v-name",
"model.name": "modelname", "model.age": 1,
"js":'{"Name":"jsname", "age":3}'
};
$.post("Test1", json); var param = {};
param["nameJS"] = "paramjs";
param["model.Name"] = "someone";
param["model.age"] = 2;
param["js"] = '{"Name":"jsname", "age":3, "Tags":"tag1"}';
//或者param["js"] = JSON.stringify({"Name":"jsname", "age":3, "Tags":"tag1"});
$.post("Test1", param); var metaformJsonItem = new Object();
metaformJsonItem.nameJS = "~!@#$%^&*(){}|:\"<>?/.,';\\[]v-name";
metaformJsonItem.js = JSON.stringify({
//key:value key注意大小写
"Name": "~!@#$%^&*(){}|:\"<>?/.,';\\[]v-jsname",
"Tags": JSON.stringify(["tag1", "tag2"]),
"age": 3,
"Ids": JSON.stringify([1, 2, 3]), //或者'[1, 2, 3]'
"Country": 0,
"Countries": JSON.stringify([1, 2])
});
metaformJsonItem["model.Name"] = "modelname";
metaformJsonItem["model.age"] = "11"; $.post("Test1", metaformJsonItem);
}

string json convert to object class

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using Newtonsoft.Json; namespace Demo.Common.Metaform.UI
{
public static class MetaObjectMigration
{
private enum HandlingMethod
{
DoNothing,
SimpleEnum,
ArrayOfEnum,
ArrayOfString,
ListOfEnum,
ListOfSerializable
} public static InputDataObject ToInputDataObject(this string jsonXml, Type objectType)
{
return jsonXml.FromMetaJson(objectType); ;
} public static InputDataObject FromMetaJson(this string json, Type objectType)
{
string jsonString = GetJsonFromMetaJson(json, objectType); JsonSerializer serializer = new JsonSerializer();
serializer.NullValueHandling = NullValueHandling.Ignore;
serializer.MissingMemberHandling = MissingMemberHandling.Ignore; InputDataObject deserialedObject =
(InputDataObject) serializer.Deserialize(new StringReader(jsonString), objectType); return deserialedObject; } private static string GetJsonFromMetaJson(string json, Type displayObjectType)
{
PropertyInfo[] properties = displayObjectType.GetProperties(); using (JsonTextReader reader = new JsonTextReader(new StringReader(json)))
{
using (StringWriter sw = new StringWriter())
{
using (JsonTextWriter writer = new JsonTextWriter(sw))
{
HandlingMethod handlingMethod = HandlingMethod.DoNothing;
bool ignoreThisProperty = false;
string newKey = string.Empty;
int arrayLevel = ;
Type elementType; while (reader.Read())
{
if (reader.TokenType == JsonToken.PropertyName)
{
string propertyJsonName = reader.Value.ToString();
var propertyName = propertyJsonName;//JsonNameToPropertyName(propertyJsonName); PropertyInfo propertyInfo = properties.FirstOrDefault(c => (c.Name == propertyName)); if (propertyInfo != null)
{
ignoreThisProperty = false; var propertyType = propertyInfo.PropertyType;
if (propertyType.IsEnum)
{
handlingMethod = HandlingMethod.SimpleEnum;
}
else if (propertyType.IsGenericType && propertyType.GetGenericArguments()[].IsEnum)
{
elementType = propertyType.GetGenericArguments()[];
handlingMethod = HandlingMethod.ListOfEnum;
}
else if (propertyType.IsGenericType &&
propertyType.GetGenericArguments()[].IsSerializable)
{
elementType = propertyType.GetGenericArguments()[];
handlingMethod = HandlingMethod.ListOfSerializable;
}
else if (propertyType.IsArray && propertyType.GetElementType().IsEnum)
{
elementType = propertyType.GetElementType();
handlingMethod = HandlingMethod.ArrayOfEnum;
}
else if (propertyType.IsArray)
{//e.g. string[]
elementType = propertyType.GetElementType();
handlingMethod = HandlingMethod.ArrayOfString;
}
else
{
handlingMethod = HandlingMethod.DoNothing;
}
}
else
{
ignoreThisProperty = true;
continue;
}
newKey = propertyJsonName;//JsonNameToPropertyName(propertyJsonName);
writer.WritePropertyName(newKey);
}
else if (reader.TokenType == JsonToken.String || reader.TokenType == JsonToken.Integer)
{
if (ignoreThisProperty)
continue; string value = reader.Value.ToString();
if (handlingMethod == HandlingMethod.SimpleEnum)
{
int code;
if (int.TryParse(value, out code))
{
writer.WriteValue(code);
}
else
{
var intList = value.ToIntList();
if (intList != null && intList.Count > )
{
writer.WriteValue(intList[]);
}
else
{
writer.WriteNull();
}
}
}
else if (handlingMethod == HandlingMethod.ListOfEnum ||
handlingMethod == HandlingMethod.ArrayOfEnum ||
handlingMethod==HandlingMethod.ArrayOfString ||
handlingMethod == HandlingMethod.ListOfSerializable)
{
CreateJsonArray(writer, handlingMethod, value, arrayLevel);
}
else
{
writer.WriteValue(value);
}
}
else
{
//Json Clone
switch (reader.TokenType)
{
case JsonToken.Comment:
writer.WriteComment(reader.Value.ToString());
break;
case JsonToken.EndArray:
writer.WriteEndArray();
arrayLevel--;
break;
case JsonToken.EndConstructor:
writer.WriteEndConstructor();
break;
case JsonToken.EndObject:
writer.WriteEndObject();
break;
case JsonToken.None:
break;
case JsonToken.Null:
writer.WriteNull();
break;
case JsonToken.StartArray:
writer.WriteStartArray();
arrayLevel++;
break;
case JsonToken.StartConstructor:
writer.WriteStartConstructor(reader.Value.ToString());
break;
case JsonToken.StartObject:
writer.WriteStartObject();
break;
case JsonToken.Undefined:
writer.WriteUndefined();
break;
default:
writer.WriteValue(reader.Value);
break;
}
}
} return sw.ToString();
}
}
}
} private static void CreateJsonArray(JsonTextWriter writer, HandlingMethod handleingMethod, string value, int arrayLevel)
{
IList valueList;
if (handleingMethod == HandlingMethod.ListOfEnum || handleingMethod == HandlingMethod.ArrayOfEnum)
{
valueList = value.ToIntList();
}
else
{
valueList = value.ToStringList();
} if (valueList.Count > )
{
if (arrayLevel == )
{
writer.WriteStartArray();
} foreach (var i in valueList)
{
writer.WriteValue(i);
} if (arrayLevel == )
{
writer.WriteEndArray();
}
}
else
{
if (arrayLevel == )
{
writer.WriteStartArray();
writer.WriteEndArray();
}
}
} } }

相关代码下载

jquery ajax/post/get 传参数给 mvc的action的更多相关文章

  1. &lbrack;转载&rsqb;jquery ajax&sol;post&sol;get 传参数给 mvc的action

    jquery ajax/post/get 传参数给 mvc的action 1.ActionResult Test1     2.View  Test1.aspx 3.ajax page 4.MetaO ...

  2. ASP&period;NET 异步Web API &plus; jQuery Ajax 文件上传代码小析

    该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post $.ajax({ type: "POST&q ...

  3. ajax向php传参数对数据库操作

    刚入门php,要求要对多用户进行批量删除(当然实际中是不可能的),在这就以此为例. 大意就是通过对数据库中用户查询,将用户信息显示在页面表格中,在进行多项选择后将所选行参数通过ajax传入后台php文 ...

  4. JQuery &dollar;&period;ajax&lpar;&rpar;&semi; 异步访问完整参数

    $.ajax 完整参数   jquery中的ajax方法参数 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post ...

  5. 兼容ie的jquery ajax文件上传

    Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对 ...

  6. struts2&plus;jquery&plus;ajax实现上传&amp&semi;&amp&semi;校验实例

    一直以为ajax不能做上传,直到最近看了一些文章.需要引入AjaxFileUploaderV2.1.zip,下载链接:http://pan.baidu.com/s/1i3L7I2T 代码和相关配置如下 ...

  7. js数组作为参数用ajax向后台传参数

    /*前台往后台传参数时,可以这样写*/ var chessId = "123"; var i=0; var data = []; /*添加单个参数*/ data.push({nam ...

  8. jquery&period;ajax中的ifModified参数的误解

    原来以为ifModified是为了在AJAX请求是发送 If-Modified-Since头,让服务端返回304. 测试代码如下: $(function () { test(); window.set ...

  9. JQuery Ajax 向后台传参方式

    在jquery的ajax函数中,可以传入3种类型的数据 文本:"uname=alice&mobileIpt=110&birthday=1983-05-12" jso ...

随机推荐

  1. AsyncTask源码分析

    在Android中,主线程是UI线程,当需要根据其他数据进行更新UI时,如果获取数据的操作比较耗时的话,会触发ANR,所以我们应该讲耗时的操作进行异步操作,尤其是请求网络数据的操作应该放在后台线程进行 ...

  2. 基于安卓高仿how-old&period;net实现人脸识别估算年龄与性别

    前几段微软推出的大数据人脸识别年龄应用how-old.net在微博火了一把,它可以通过照片快速获得照片上人物的年龄,系统会对瞳孔.眼角.鼻子等27个“面部地标点"展开分析,进而得出你的“颜龄 ...

  3. js 判断js函数、变量是否存在

    //是否存在指定函数 function isExitsFunction(funcName) { try { if (typeof(eval(funcName)) == "function&q ...

  4. SQL Server 2008连接字符串写法大全&lbrace;转&rcub;

    一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnect ...

  5. volley请求原理

    Volley 实现原理解析 本文为 Android 开源项目实现原理解析 中 Volley 部分 项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo 分析者:g ...

  6. NOIP-火柴棒等式

    题目描述 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法如图所示: 注意: 1. 加号与等 ...

  7. Ubuntu点击dash home就崩溃

    很崩溃的一个问题,搞了好久.并没有很清楚的知道具体哪个细节导致的问题,只是大概知道了原因,以及搞出了一个解决方案. 问题描述 台式机,没有独立显卡,也就是只有一个intel CPU在一起的小破显卡(我 ...

  8. easyui 信息提示

    /*消息提示begin*/jQuery.Info = function (msg) { $.messager.alert("温馨提示", msg, "info" ...

  9. thinkphp3&period;1 多表联合查询代码

    php代码 public function info(){ $where['openid']=session('openid');////用户session $db = M("pay&quo ...

  10. Fast Matrix Operations UVA - 11992 线段树

    题意翻译 有一个r行c列的全0矩阵,有以下三种操作. 1 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素加v 2 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素 ...