Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发送模型问题ASP.net MVC 4_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 发送模型问题ASP.net MVC 4

C# 发送模型问题ASP.net MVC 4,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,控制器httpGet操作: [HttpGet] public ActionResult CalculCom(int id) { CalcCom calc = new CalcCom(); ComModel com = calc.CalculCom(id, 10, 2011); return View(com); } [HttpPost] pu

控制器httpGet操作:

[HttpGet]
        public ActionResult CalculCom(int id) 
        {
            CalcCom calc = new CalcCom();
            ComModel com = calc.CalculCom(id, 10, 2011);
            return View(com);
        }
        [HttpPost]
        public ActionResult CalculCom(ComModel model)
        {
            //some code
            foreach (ComModel.quita qi in model.quitaList)
            {
                var quita = db.QUITA.Find(qi.n_quita);
                quita.VERSNUM = vers.VERSNUM;
                db.Entry(quita).State = EntityState.Modified;
            }

            db.SaveChanges();
            return RedirectToAction("Index");
        }
我的看法是:

// Some code to show my model attribute

@using (Html.BeginForm()) {
    @Html.HiddenFor(m=>m.ben)
    @Html.HiddenFor(m=>m.centre)
    @Html.HiddenFor(m=>m.mtn_brut)
    @Html.HiddenFor(m=>m.mtn_net)
    @Html.HiddenFor(m=>m.mtn_rs)
    @Html.HiddenFor(m=>m.quitaList) // this is a list 
    @Html.HiddenFor(m=>m.val_rs)
    @Html.HiddenFor(m=>m.versNum)

    <input type="submit" value="Valider"/> 
}
康茂德:

public class ComModel
{
    public int versNum { get; set; }
    public decimal mtn_brut { get; set; }
    public decimal mtn_net { get; set; }
    public decimal mtn_rs { get; set; }
    public decimal val_rs { get; set; }
    public string ben { get; set; }
    public int centre { get; set; } 
    public List<quita> quitaList = new List<quita>();

    public struct quita
    {
        public decimal mtn_com { get; set; }
        public decimal mtn_net { get; set; }
        public decimal mtn_ttc { get; set; }
        public decimal comp_prime { get; set; }
        public decimal mtn_fq { get; set; }
        public decimal mtn_tot { get; set; }

        public int n_quita { get; set; }
    }
}
所以我想做的是:

获取模型HttpGet操作 显示我的模型,然后用户将决定是否验证模型。 若模型是有效的,那个么我将把它保存到数据库中。 当用户单击submit按钮时,问题是模型已发送,但quitaList中的项目丢失,发送后,在我的HttpPost控件中,quitaList为空


那么如何修复它呢?还有没有其他方法可以做到这一点,在将其保存到数据库之前显示模式,而不是使用“从”发送模型?

要在表单发布期间将列表返回到模型中,您需要像这样循环浏览列表

@using (Html.BeginForm()) {
@Html.HiddenFor(m=>m.ben)
@Html.HiddenFor(m=>m.centre)
@Html.HiddenFor(m=>m.mtn_brut)
@Html.HiddenFor(m=>m.mtn_net)
@Html.HiddenFor(m=>m.mtn_rs)
@for(int i=0;i<Model.quitaList.Count;i++)
{
    @Html.HiddenFor(m=>m.quitaList[i].mtn_com)
}
 @Html.HiddenFor(m=>m.val_rs)
@Html.HiddenFor(m=>m.versNum)

<input type="submit" value="Valider"/> 
}


这将在模型中返回列表,但请注意,它只包含mnt_com属性的值。如果需要所有属性值,则需要在循环中定义与上述代码相同的所有属性值

还可以显示ComModel的代码吗?@Fresh请参阅更新有没有其他可能的方法,比如使用全局变量指针?