There is a representation of the following type, which needs to be remade under 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 ModelC controller. It has a ViewM method with a return value of type 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); } Well, a class with properties
public class P { public string Name { get; set; } public int Value { get; set; } } If the ViewM were of type ActionResult, then in any field it would be easy to pass the Name value. 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 in the same way you can not do 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 the values are not transferred from Ajax.BeginForm ... How do I fix Ajax.BeginForm so that the values are successfully passed to Json?