Asp.net mvc 调用控制器方法和显示列表-MVC

Asp.net mvc 调用控制器方法和显示列表-MVC,asp.net-mvc,Asp.net Mvc,我正在做一个项目,我想在点击按钮时将用户添加到列表中。 用户可以在点击按钮之前输入姓名和工资 问题是:单击按钮时,如何调用控制器方法并显示列表 控制器: namespace TimeIsMoney.Controllers { public class HomeController : Controller { List<UserModel> list = new List<UserModel>(); public Acti

我正在做一个项目,我想在点击按钮时将用户添加到列表中。 用户可以在点击按钮之前输入姓名和工资

问题是:单击按钮时,如何调用控制器方法并显示列表

控制器:

namespace TimeIsMoney.Controllers
{
    public class HomeController : Controller
    {

        List<UserModel> list = new List<UserModel>();
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult AddUser(UserModel user) 
        {
            var list = Session["myUsers"] as List<UserModel>;
            list.Add(user);
            return View(list);
        }
    }
}

将字段放在表单标记中,并将表单发布到
AddUser
操作方法

像这样更新索引视图。您可以看到此视图是针对UserModel的强类型视图

@model TimeIsMoney.Models.UserModel
@using(Html.BeginForm("AddUser","Home")
{
   @Html.TextBoxFor(s=>s.UserName)
   @Html.TextBoxFor(s=>s.Wage)
   <input  type="submit"/ >
}
确保
AddUser
方法返回一个没有布局的视图

您可以转到
AddUser.cshtml
视图,并将
布局设置为空

@{
  Layout=null;
}

对于第二部分,如果使用Ajax.BeginForm而不是Html.BeginForm,则不需要任何javascript。这类似于使用(Ajax.BeginForm(“AddUser”,“Home”,null,new AjaxOptions{HttpMethod=“Post”,InsertionMode=InsertionMode.Replace,UpdateTargetId=“userList”,new{id=“addUserForm”}))
不要多次问同一个问题。
@model TimeIsMoney.Models.UserModel
@using(Html.BeginForm("AddUser","Home")
{
   @Html.TextBoxFor(s=>s.UserName)
   @Html.TextBoxFor(s=>s.Wage)
   <input  type="submit"/ >
}
@model TimeIsMoney.Models.UserModel
@using(Html.BeginForm("AddUser","Home")
{
   @Html.TextBoxFor(s=>s.UserName)
   @Html.TextBoxFor(s=>s.Wage)
   <input id="btnSubmit" type="submit"/ >
}
<div id="userList" /> 
@section Scripts
{
 <script>
   $(function(){
      $("#btnSubmit").click(function(e){
         e.preventDefault();

         var _form=$(this).closest("form");

         $.post(_form.attr("action"),_form.serialize(),function(response){
            $("#userList").html(response);
         }); 

      });
   });
 </script>
}
@{
  Layout=null;
}