现在我传递了一个值并返回到文本框。我想添加多个文本框并将控制器中的所有值传递给ajax函数,以便在页面加载时显示在文本框中。
Controller:
public string GetFormData()
{
//using Linq query and EF
Form form = db.Forms.Find(1);
if (form == null)
{
return "";
}
else
return form.username;
}
AJAX:
$("#btnSaveForm").click(function (event) {
event.preventDefault();
$('#Result2').html("<img src='/Images/loading.gif' />");
$.post($("#frmform").attr("action"), $("#frmform").serialize(), function (result) {
if (result != null) {
$('#Result2').html(result);
}
});
});
答案 0 :(得分:1)
您只需返回JSON结果即可。考虑这个简单的例子:
<强>模型强>
public class JSONTestModel
{
public string Name { get; set; }
public bool IsMarried { get; set; }
public int Age { get; set; }
}
<强>控制器强>
public ActionResult TestJSON()
{
var model = new JSONTestModel()
{
Name = "John Smith",
IsMarried = true,
Age = 35
};
return View(model);
}
[HttpPost]
public ActionResult TestJSON(JSONTestModel model)
{
// YOUR CODE HERE
return Json(model);
}
请注意,post方法返回JSON结果。这将序列化您传递给Json的对象。
查看强>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input id="save-data" type="button" value="Save" />
}
<script type="text/javascript">
$(function () {
$('#save-data').click(function () {
$.post($("form").attr("action"), $("form").serialize(), function (result) {
if (result != null) {
alert('Name - ' + result.Name);
alert('IsMarried - ' + result.IsMarried);
alert('Age - ' + result.Age);
}
});
});
});
</script>
result
参数是您在控制器中返回的json对象。
希望它有所帮助!