【问题标题】:ASP.MVC 1.0 radio button values with ViewModel带有 ViewModel 的 ASP.MVC 1.0 单选按钮值
【发布时间】:2011-06-01 16:16:45
【问题描述】:

你好,

我有点 MVC 菜鸟。我正在尝试创建一个简单的应用程序,客户可以在其中登录并对某事进行投票。没什么复杂的。我有一个强类型视图,我在其中传递了一个 VoteModel 类,该类包含 VoteStructures 的集合。 Vote 结构只包含一个 (int) ID、一个描述以及是否被选中。

所以在我看来我有

<% foreach (var item in Model.votes) { %>
    <%= Html.RadioButton("Destination", item.ID, item.SelectedInd) + " " + item.Destination %> <br />
<% } %>

当我执行 POST 以获取提交的结果时,我的操作方法会取回强类型的 ViewModel,但未填充原始投票结构集合对象。

这是为什么呢?我该如何解决这个问题?

非常感谢您的帮助

布赖恩

【问题讨论】:

  • 你的 Post 方法是什么样的?

标签: asp.net-mvc


【解决方案1】:

如果 Model.votes 是一个列表,您将需要考虑处理 IEnumerable in MVC 1 (more goodies)。 MVC 2 中的使用得到了显着改善。

【讨论】:

    【解决方案2】:

    好吧,我可以从 Request.Form 对象中挖掘出选定的单选按钮。我打赌有一个更好的解决方案,但这似乎确实有效。正如前面的答案指出的那样,这在 MVC 2 中更好。如果有比这更好的解决方案,我将不胜感激。

    谢谢,

    布赖恩

        [AcceptVerbs(HttpVerbs.Post)]
        public ViewResult Index(VoteModel oVM)
        {
    
            var ID = Request.Form["Destination"];
            if (ID != null)
            {
                //Moving on with life
            }    
    
            //just repost the same data since the client didn't make a selection
        }
    

    【讨论】:

    • 嗯,这可以通过将目标作为字符串属性放在 Viewmodel 上来简化,这样我的控制器不依赖于请求。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2013-09-25
    • 2013-08-26
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多