为了账号安全,请及时绑定邮箱和手机立即绑定

模型绑定到列表MVC 4

模型绑定到列表MVC 4

慕尼黑的夜晚无繁华 2019-09-03 16:33:39
是否有将IList项绑定到视图的模式。我似乎遇到了HttpPost的问题。我知道菲尔哈克写了一篇很好的文章,但它已经过时了,他说他们可能会修复MVC 4。
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

一个干净的解决方案可以创建一个通用类来处理列表,因此您不需要在每次需要时创建不同的类。


public class ListModel<T>

{

    public List<T> Items { get; set; }


    public ListModel(List<T> list) {

        Items = list;

    }

}

当您返回视图时,您只需要执行以下操作:


List<customClass> ListOfCustomClass = new List<customClass>();

//Do as needed...

return View(new ListModel<customClass>(ListOfCustomClass));

然后在模型中定义列表:


@model ListModel<customClass>

准备好了:


@foreach(var element in Model.Items) {

  //do as needed...

}


查看完整回答
反对 回复 2019-09-03
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

〜控制器


namespace ListBindingTest.Controllers

{

    public class HomeController : Controller

    {

        //

        // GET: /Home/


        public ActionResult Index()

        {

            List<String> tmp = new List<String>();

            tmp.Add("one");

            tmp.Add("two");

            tmp.Add("Three");

            return View(tmp);

        }


        [HttpPost]

        public ActionResult Send(IList<String> input)

        {

            return View(input);

        }    

    }

}

〜强类型索引视图


@model IList<String>


@{

    Layout = null;

}


<!DOCTYPE html>


<html>

<head>

<meta name="viewport" content="width=device-width" />

<title>Index</title>

</head>

<body>

    <div>

    @using(Html.BeginForm("Send", "Home", "POST"))

    {

        @Html.EditorFor(x => x)

        <br />

        <input type="submit" value="Send" />

    }

    </div>

</body>

</html>

〜强类型发送视图


@model IList<String>


@{

    Layout = null;

}


<!DOCTYPE html>


<html>

<head>

<meta name="viewport" content="width=device-width" />

<title>Send</title>

</head>

<body>

    <div>

    @foreach(var element in @Model)

    {

        @element

        <br />

    }

    </div>

</body>

</html>

这就是你必须做的所有事情,将他的MyViewModel模型更改为IList。


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 402 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信