【问题标题】:Save and retrieve checkbox values asp.net mvc3保存和检索复选框值 asp.net mvc3
【发布时间】:2013-05-25 10:36:55
【问题描述】:

我是 MVC3 技术的新手,正在尝试以自己的方式解决一个小问题。 我只需要将 checked checkbox 值保存在数据库中,然后在 Edit view 上检查它们。

<input type="checkbox" value="Photo" name="DocSub" /> Photograph<br />
<input type="checkbox" value="BirthCertificate" name="DocSub" /> Copy Of Birth Certificate<br />
<input type="checkbox" value="School Leaving Certificate" name="DocSub" /> School Leaving Certificate<br />

单击提交按钮时,将调用所需控制器的[HTTPPOST] Action 方法。在那里我以这种形式收到选定的值:

 var selectedCheckBoxValues = Request.Form["DocSub"];

我以逗号分隔的形式获取所有选中的复选框值,并能够将它们存储到数据库中,但想知道这是否是正确的方法。

我还需要知道在 Edit view 上以已检查的形式从数据库中检索复选框值。

【问题讨论】:

  • 如果您还有其他问题,请告诉我,如果我的回答完全回答了您的问题,请相应标记

标签: asp.net-mvc-3


【解决方案1】:

解决这些问题的典型方法是使用带有模型的视图

即,假设这是视图 Documents.cshtml

@model DocumentViewModel 

@Html.LabelFor(m => m.Photo)
@Html.CheckBoxFor( m => m.Photo )

@Html.LabelFor(m => m.BirthCertificate)
@Html.CheckBoxFor( m => m.BirthCertificate )

@Html.LabelFor(m => m.SchoolLeavingCertificate)
@Html.CheckBoxFor( m => m.SchoolLeavingCertificate )

并使用视图模型将数据传递给视图

viewmodel 是一个类,您可以在其中拥有要发送到视图的数据,即。

public class DocumentViewModel{
     public bool Photo {get;set;}
     public bool BirthCertificate { get; set; }
     public bool SchoolLeavingCertificate {get;set;}
}

你会有一个控制器来填充视图模型并调用视图

    public ActionResult Documents()
    {
        var modelData = new DocumentViewModel(); 
         //or retrieve from database at this point
         // ie. modelData.Photo = some database value
        return View(modelData);
    }

    [HttpPost]
    public ActionResult Documents(DocumentViewModel documentsVM)
    {
        if (ModelState.IsValid)
        {
            //update the database record, save to database... (do stuff with documentsVM and the database)

            return RedirectToAction("NextAction");
        }
         //else, if model is not valid redirect back to the view

        return View(documentsVM);
    }

寻找有关 mvc 基础知识的教程。读取代码。

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多