2016-12-29 2 views
-1

Я хочу построить объект в C#, как это.Как построить функцию javascript как объект в C#?

public JsonResult GetMyObject(){ 
var MyObject = 
    new 
    { 
     Myfunction = "function (params) { 
      var res = params[0].seriesName + ' ' + params[0].name; 
      res += '<br/> Start : ' + params[0].value[0] + ' Max : ' + params[0].value[3]; 
      res += '<br/> End : ' + params[0].value[1] + ' Min : ' + params[0].value[2]; 
      return res; 
     }", 
     Element1 = "Test Element", 
     Element2 = 123 
    }; 
    return Json(MyObject); 
} 

Но когда я вернуть объект JSON в JavaScript, элемент «MYFUNCTION» в MyObject это просто строка, а не Java-функция.

Как я могу построить функцию javascript как объект в C#?

+1

Каков ваш прецедент, что вы хотите сделать это в первую очередь? – charlietfl

+0

Вам нужно взять эту строку и с помощью jquery добавить ее в какую-то часть вашего представления, где у вас уже есть теги скриптов. Я бы написал код для вас, но я нахожусь на своем телефоне. Но должно быть легко, и я уверен, что вы можете понять это. – CodingYoshi

+0

В общем, проще (и безопаснее) передать простой JSON-объект (чистые данные) из C# API в код JavaScript AJAX и написать любую необходимую клиентскую логику в JavaScript. – TrueWill

ответ

0

Если вы хотите вернуть объект, лучше создать класс, заполнить и отправить класс как возвращаемый элемент, он отправит вам формат JSON.

public class MyFucntion 
{ 
    public string SeriesName { get; set; } 
    public string Start { get; set; } 
    public string End { get; set; } 
    public string Max { get; set; } 
    public string Min { get; set; } 
} 

public class MyObject { 
    public MyFucntion myFun { get; set; } 
    public string Element1 { get; set; } 
    public string Element2 { get; set; } 
} 
public JsonResult GetMyObject() 
    { 
     var fun = new MyFucntion 
     { 
      SeriesName =params[0].name, 
      Max = params[0].value[3], 
      Min = params[0].value[2], 
      Start =params[0].value[0], 
      End = params[0].value[1] 
     }; 
     var obj = new MyObject { 
      myFun = fun, 
      Element1 ="ElE", 
      Element2 = "ELE2" 
     }; 
     return JSON(obj); 
    } 

Если вы используете веб-сайт asp.net вы можете использовать веб Mehtod и вам нужно изменить код.

[System.Web.Services.WebMethod] 
    public static MyObject GetMyObject() 
    { 
     var fun = new MyFucntion 
     { 
      SeriesName =params[0].name, 
      Max = params[0].value[3], 
      Min = params[0].value[2], 
      Start =params[0].value[0], 
      End = params[0].value[1] 
     }; 
     var obj = new MyObject { 
      myFun = fun, 
      Element1 ="ElE", 
      Element2 = "ELE2" 
     }; 
     return obj; 
    } 
Смежные вопросы