438 Stimmen

ASP.NET MVC-Controller-Aktionen, die JSON oder Teil-HTML zurückgeben

Ich versuche, Controller-Aktionen zu erstellen, die entweder JSON oder teilweise html je nach einem Parameter zurückgeben wird. Was ist der beste Weg, um das Ergebnis asynchron an eine MVC-Seite zurückzugeben?

7voto

Vlad Punkte 231

Alternative Lösung mit Inkodierungsrahmen

Aktion Rückgabe json

Controller

    [HttpGet]
    public ActionResult SomeActionMethod()
    {
        return IncJson(new SomeVm(){Id = 1,Name ="Inc"});
    }

Rasierapparat Seite

@using (var template = Html.Incoding().ScriptTemplate<SomeVm>("tmplId"))
{
    using (var each = template.ForEach())
    {
        <span> Id: @each.For(r=>r.Id) Name: @each.For(r=>r.Name)</span>
    }
}

@(Html.When(JqueryBind.InitIncoding)
  .Do()
  .AjaxGet(Url.Action("SomeActionMethod","SomeContoller"))
  .OnSuccess(dsl => dsl.Self().Core()
                              .Insert
                              .WithTemplate(Selector.Jquery.Id("tmplId"))
                              .Html())
  .AsHtmlAttributes()
  .ToDiv())

Aktion zurück html

Controller

    [HttpGet]
    public ActionResult SomeActionMethod()
    {
        return IncView();
    }

Rasierapparat Seite

@(Html.When(JqueryBind.InitIncoding)
  .Do()
  .AjaxGet(Url.Action("SomeActionMethod","SomeContoller"))
  .OnSuccess(dsl => dsl.Self().Core().Insert.Html())
  .AsHtmlAttributes()
  .ToDiv())

6voto

Paul Hinett Punkte 1931

Vielleicht möchten Sie einen Blick auf diesen sehr hilfreichen Artikel werfen, der dies sehr gut behandelt!

Ich dachte nur, es könnte Leuten helfen, die nach einer guten Lösung für dieses Problem suchen.

http://weblogs.asp.net/rashid/archive/2009/04/15/adaptive-rendering-in-asp-net-mvc.aspx

5voto

Anil Vaddepally Punkte 59

PartialViewResult und JSONReuslt erben von der Basisklasse ActionResult. Wenn also der Rückgabetyp dynamisch festgelegt wird, wird die Methodenausgabe als ActionResult deklariert.

public ActionResult DynamicReturnType(string parameter)
        {
            if (parameter == "JSON")
                return Json("<JSON>", JsonRequestBehavior.AllowGet);
            else if (parameter == "PartialView")
                return PartialView("<ViewName>");
            else
                return null;

        }

3voto

Sarath Punkte 2544

Für Leute, die auf MVC 3 aufgerüstet haben, gibt es eine gute Möglichkeit MVC3 und Json verwenden

2voto

sakthi Punkte 21
    public ActionResult GetExcelColumn()
    {            
            List<string> lstAppendColumn = new List<string>();
            lstAppendColumn.Add("First");
            lstAppendColumn.Add("Second");
            lstAppendColumn.Add("Third");
  return Json(new { lstAppendColumn = lstAppendColumn,  Status = "Success" }, JsonRequestBehavior.AllowGet);
            }
        }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X