ASP.NET MVC5:如何将数据传递给视图?

时间:2014-05-22 10:04:11

标签: c# .net asp.net-mvc asp.net-mvc-5 razorengine

我对此操作有疑问:

“activateOffreLocation”检查“Publication_Statut”的值并更改它(如果它等于“Activée”,则操作将其更改为“Désactivée”,反之亦然

我没有收到任何错误!在询问确认后,它会简单地切换到“listOffreLocation”视图!

我试图用断点跟随执行,它在我的Post Action中转为“offreLocation”为空,而ID不是,它在第​​一个视图中包含所选ITEM的正确值。

         // GET: /OffreLocation/Activate
    public ActionResult ActivateOffreLocation(int id)
    {
        return View(db.PublicationSet.Find(id));
    }


    // POST: /OffreLocation/Activate
    [HttpPost]
    public ActionResult ActivateOffreLocation(int id, OffreLocation offreLocation)
    {
        try {
            var statut = offreLocation.Publication_Statut;

               if(String.Equals(statut,"Activée"))
                        {
                            offreLocation.Publication_Statut = "Désactivée";
                            db.SaveChanges();
                            return View();
                        }
            else 
                        {
                            offreLocation.Publication_Statut = "Activée";
                            db.SaveChanges();              
                            return RedirectToAction("ListOffreLocation"); 
                        }              
             } 
        catch (Exception exp)
        {
            Console.WriteLine("IOException source: {0}", exp.Source);
            return RedirectToAction("Error"); 
        }                      
    }

在我的视图“listOffreLocation”中我刚刚定义了“activateOffreLocation”视图的链接:

@Html.ActionLink("Désactiver", "ActivateOffreLocation", new { id = item.Publication_ID }) | 

“ActivateOffreLocation”查看:

<fieldset style="border:dashed; margin-top:80px">
<h3 style="text-align: center; margin-left:80px; margin-top:80px">  Voullez vous vraiment désactiver cette offre de location?   
</h3>
<h4 style="text-align:center">  Num:    @Html.EditorFor(model => model.Publication_ID) </h4>
<h4 style="text-align:center">  Statut    @Html.EditorFor(model => model.Publication_Statut) </h4>
    <div style="margin-bottom:80px">

        <hr />


        @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()
            @Html.HiddenFor(model =>model.Publication_ID) 
            <div class="form-actions no-color" style="text-align:center">
                @Html.HiddenFor(model => model.Publication_ID)
                <input type="submit" value="Désactiver" class="btn btn-default" /> |
                @Html.ActionLink("Retour à la  Liste", "ListOffreLocation")

            </div>
        }
    </div>
 </fieldset>

1 个答案:

答案 0 :(得分:0)

首先,您没有表明您将任何模型传递给您的视图“ActivateOffreLocation”。您似乎也没有发送任何模型数据,您的模型是“OffreLocation”到您的Action。这可能是你的问题。

如果你解决了这个问题,并且它无法解决你的问题,请发布更多代码,我会更新我的答案。