Это то, что публичный API не предоставляет, но может быть полезен для многих людей. Ваш основной ресурс заключается в файле об ошибке с Apple , который описывает то, что вам нужно (и это может быть полезно, чтобы объяснить, зачем вам это нужно). Надеюсь, ваш запрос может быть выпущен в будущем выпуске.
После подачи ошибки вы также можете использовать один из инцидентов технической поддержки разработчиков (DTS), которые появились с вашим членством в Программе разработчиков iPhone. Если есть общедоступный способ сделать это, инженер Apple будет знать. В противном случае это может по крайней мере помочь получить ваше положение немного больше внимания в Mothership. Удачи!
В Вашем методе действия возвратите Json (объект) возвратить JSON Вашей странице.
public ActionResult SomeActionMethod() {
return Json(new {foo="bar", baz="Blech"});
}
Тогда просто называют метод действия с помощью Ajax. Вы могли использовать один из вспомогательных методов от ViewPage такой как
<%= Ajax.ActionLink("SomeActionMethod", new AjaxOptions {OnSuccess="somemethod"}) %>
, SomeMethod будет методом JavaScript, который тогда оценивает возвращенный объект Json.
, Если Вы хотите возвратить простую строку, можно просто использовать ContentResult:
public ActionResult SomeActionMethod() {
return Content("hello world!");
}
ContentResult значением по умолчанию возвращает текст/плоскость как свой contentType.
Это сверхзагружаемо, таким образом, можно также сделать:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
Другой хороший способ иметь дело с данными JSON использует функцию JQuery getJSON. Можно звонить
public ActionResult SomeActionMethod(int id)
{
return Json(new {foo="bar", baz="Blech"});
}
Метод из метода jquery getJSON просто...
$.getJSON("../SomeActionMethod", { id: someId },
function(data) {
alert(data.foo);
alert(data.baz);
}
);
Для ответа на другую половину вопроса можно звонить:
return PartialView("viewname");
, когда Вы хотите возвратить частичный HTML. Необходимо будет просто найти некоторый способ решить, хочет ли запрос JSON или HTML, возможно, на основе части/параметра URL.
Я думаю, вам следует рассмотреть AcceptTypes запроса. Я использую его в своем текущем проекте, чтобы вернуть правильный тип контента, как показано ниже.
Ваше действие на контроллере может проверить его, как на объекте запроса
if (Request.AcceptTypes.Contains("text/html")) {
return View();
}
else if (Request.AcceptTypes.Contains("application/json"))
{
return Json( new { id=1, value="new" } );
}
else if (Request.AcceptTypes.Contains("application/xml") ||
Request.AcceptTypes.Contains("text/xml"))
{
//
}
Затем вы можете реализовать aspx представления для обслуживания частичного Пример ответа xhtml.
Затем в jQuery вы можете получить его, передав параметр типа как json:
$.get(url, null, function(data, textStatus) {
console.log('got %o with status %s', data, textStatus);
}, "json"); // or xml, html, script, json, jsonp or text
Надеюсь, это поможет Джеймс
Вы можете взглянуть на эту очень полезную статью, которая охватывает это очень хорошо!
Просто думал, что это может помочь людям искать хорошее решение этой проблемы.
http://weblogs.ass.asp.net/rashid/archive/2009/04/15/Adaptive-rendering-in-asp-net-mvc.aspx