Così ho un metodo finito che funziona e lo uso in tutto il sito:ASP.NET MVC render vista parziale ad una stringa di tornare con JSON
public PartialViewResult GetBlogEntries(int itemsToTake = 5)
{
...
return PartialView("_BlogPost", model);
}
Ora voglio ottenere questo dal mio javascript in forma JSON.
public JsonResult GetBlogPostJson()
{
var blogEntry = GetBlogEntries(1);
var lastEntryId = GetLastBlogEntryId();
return Json(new {Html = blogEntry, LastEntryId = lastEntryId}, JsonRequestBehavior.AllowGet);
}
idea è di ottenere in questo modo:
$.ajax({
url: '/Blog/GetBlogPostJson',
dataType: 'json',
success: function (data) {
var lastEntryId = data.LastEntryId;
var html = data.Html;
...
}
});
problema è che questo, naturalmente, non producono una stringa, ma un PartialViewResult.
La domanda è: come posso risolvere PartialViewResult in html che posso inviare indietro con JSON?
Per favore correggimi se sbaglio, vuoi generare HTML, quindi ottenere un ID da questo HTML e infine inviare sia Id che HTML in JSON? – Dima
Sì e no. Il metodo GetBlogEntries() crea una vista parziale che chiamo da vari punti della pagina web. Tuttavia, non stampa l'ID ovunque. Quindi ho bisogno di farlo separatamente. Quindi invia l'html e l'id al chiamante. Il javascript sul client farà in modo di ottenere solo nuovi post di blog se ce ne sono di nuovi da ottenere. – Patrick
@NickLarsen, per favore guarda di nuovo la domanda e rispondi contrassegnandola come duplicata. Questa domanda richiede un modo per visualizzare Visualizza come JSON (come da un punto finale), mentre altri richiedono il rendering di un Rasoio. Simile, sì. Ma sicuramente non è lo stesso caso d'uso. –