Quantcast
Channel: ASP.NET AJAX + Ajax Control Toolkit (ACT)
Viewing all articles
Browse latest Browse all 5678

Transfer data from the presentation controller with a method JsonResult

$
0
0

There is a view the following type that you want to convert a json:

@using (Ajax.BeginForm(new AjaxOptions { Url = Url.Action("ViewM", "ModelC") }))
{<input type="text" name="str" /><input type="text" name="str2" /><input class="btn" type="submit" value="Отобразить результат" />
}



And the controller ModelS. ViewM method to return a Json

public JsonResult ViewM()
{
var result = new List<P>();
result.Add(new P { Name = "N1", Value = 6 });
result.Add(new P{ Name = "N2", Value = 6 });
result.Add(new P{ Name = "N3", Value = 6 });
result.Add(new P { Name = "N4", Value = 4 });
return Json(new { Countries = result }, JsonRequestBehavior.AllowGet);
}



the properties of the class

public class P
{
public string Name { get; set; }
public int Value { get; set; }
}



If ViewM would type ActionResult, in any field it would have been easy to convey the value of Name. It would look something like this:

public ActionResult ViewM(string str, string str2)
{
var result = new List<P>();
result.Add(new P { Name = str, Value = 6 });
result.Add(new P{ Name = str2, Value = 6 });
result.Add(new P{ Name = "N3", Value = 6 });
result.Add(new P { Name = "N4", Value = 4 });
return PartialView(result)
}



But the problem is that the same can be done with JsonResult.

public JsonResult ViewM(string str, string str2)
{
var result = new List<P>();
result.Add(new P { Name = str, Value = 6 });
result.Add(new P{ Name = str2, Value = 6 });
result.Add(new P{ Name = "N3", Value = 6 });
result.Add(new P { Name = "N4", Value = 4 });
return Json(new { Countries = result }, JsonRequestBehavior.AllowGet);
}

Because of Ajax.BeginForm not transmitted values ... How can I fix Ajax.BeginForm, to values successfully transferred to Json?


Viewing all articles
Browse latest Browse all 5678

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>