尝试在其他视图中添加功能性局部视图

时间:2017-08-14 18:06:43

标签: c# asp.net-mvc

我想在我所有其他观点中提出一个部分观点。

这个局部视图的作用很简单:它在Session["here"]对象中放入一个新值,然后刷新页面。

我可以在每个视图中放置相同的表单模式,但我认为它会更可读?优化 ?无论如何,这将是所谓的模式:

@using RatioMVC.Models
@model ChoixPeriodeMod

@{
    SelectList periodes;
    using (SGARDEEntities db = new SGARDEEntities())
    {
        periodes = new SelectList(db.AnneeFinance.ToList(), "id", "Texte");
    }

}

@using (Html.BeginForm("ChoixPeriode", "Tableaux", FormMethod.Post, new { role = "form" }))
{
    <label>Début : </label> @Html.DropDownListFor(t => t.debut, periodes)    <label>Fin : </label> @Html.DropDownListFor(t => t.fin, periodes)
}

上面的代码在局部视图中,控制器代码如下:

    [HttpGet]
    public ActionResult ChoixPeriode()
    {
        ChoixPeriodeMod model = new ChoixPeriodeMod();
        AnneeFinance debut = new AnneeFinance();
        AnneeFinance fin = new AnneeFinance();

        initialise(ref debut, ref fin);

        model.debut = debut;
        model.fin = fin;

        Session["debut"] = model.debut;
        Session["fin"] = model.fin;

        return View(model);
    }



    [HttpPost]
    public ActionResult ChoixPeriode(ChoixPeriodeMod model)
    {
        Session["debut"] = model.debut;
        Session["fin"] = model.fin;

        return View(model);
    }

遇到局部视图线时发生错误:

@using RatioMVC.Models
@model TotauxMod

@{
ViewBag.Title = "Totaux";
Layout = "~/Views/Shared/_Layout.cshtml";

}



@Html.Partial("ChoixPeriode")

<h2>test view</h2>

错误可以翻译为:

  

传递给视图的错误模型实例

我开始怀疑:部分观点可能不是最好的主意。

我希望(像网络表单中的控件ascx)一个处理自己回发的文件。我可以把它放在需要这种简短控制的每个视图中。

0 个答案:

没有答案