1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [转载]jquery ajax/post/get 传参数给 mvc的action

[转载]jquery ajax/post/get 传参数给 mvc的action

时间:2021-03-09 03:57:49

相关推荐

[转载]jquery ajax/post/get 传参数给 mvc的action

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" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/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 mon.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 = 0;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()[0].IsEnum){elementType = propertyType.GetGenericArguments()[0];handlingMethod = HandlingMethod.ListOfEnum;}else if (propertyType.IsGenericType &&propertyType.GetGenericArguments()[0].IsSerializable){elementType = propertyType.GetGenericArguments()[0];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 > 0){writer.WriteValue(intList[0]);}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 Cloneswitch (reader.TokenType){case ment: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 > 0){if (arrayLevel == 0){writer.WriteStartArray();}foreach (var i in valueList){writer.WriteValue(i);}if (arrayLevel == 0){writer.WriteEndArray();}}else{if (arrayLevel == 0){writer.WriteStartArray();writer.WriteEndArray();}}}}}

相关代码下载

原文地址:/dfg727/archive//08/10/3250548.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。