C# ASP.NET MVC5:如何将数据传递给视图?
我对此操作有问题: “activateOffreLocation”检查“Publication_Statut”的值并将其更改(如果它等于“activeée”,则操作将其更改为“Désactivée”,反之亦然) 我没有收到任何错误!在请求确认后,它会简单地切换到“listOffreLocation”视图 我试图用断点跟踪执行,结果发现在我的Post操作中“offreLocation”为空,而ID为空,它在第一个视图中包含所选项目的正确值C# ASP.NET MVC5:如何将数据传递给视图?,c#,.net,asp.net-mvc,asp.net-mvc-5,razorengine,C#,.net,Asp.net Mvc,Asp.net Mvc 5,Razorengine,我对此操作有问题: “activateOffreLocation”检查“Publication_Statut”的值并将其更改(如果它等于“activeée”,则操作将其更改为“Désactivée”,反之亦然) 我没有收到任何错误!在请求确认后,它会简单地切换到“listOffreLocation”视图 我试图用断点跟踪执行,结果发现在我的Post操作中“offreLocation”为空,而ID为空,它在第一个视图中包含所选项目的正确值 // GET: /OffreLocati
// 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”视图的链接:
“ActivateOffreLocation”视图:
请问您的位置在哪里?
Num:@Html.EditorFor(model=>model.Publication\u ID)
Statut@Html.EditorFor(model=>model.Publication\u Statut)
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.Publication\u ID)
@Html.HiddenFor(model=>model.Publication\u ID)
|
@ActionLink(“Retourála Liste”,“listoff重新定位”)
}
首先,您没有向视图“ActivateOffreLocation”传递任何模型。您也没有向您的操作发送任何模型数据,您的模型是“OffreLocation”。这可能是您的问题
如果您解决了这个问题,但它无法解决您的问题,请发布更多代码,我将更新我的答案。是的,我在“ActivateOffreLocation”中使用了我的模型查看方式如下:@model COM.MENNILIK.Models.offrelocation我所做的是,我尝试使用get方法在激活视图中显示出版物的状态和ID,它工作正常。但一旦我单击submit按钮,它就会丢失对象,因此我无法更改数据库中的任何内容(post操作无法获取对象),因此我想知道如何将此对象从激活视图传递到激活后操作(语法)您正在尝试从“提交”按钮传递值;我建议改为使用隐藏输入。要从“提交”按钮传递值,请阅读本文,我使用了hidenInput,并尝试了ur链接中描述的过程!在post操作中仍然获得空对象:public ActionResult ActivateOffreLocation(int id,OffreLocation OffreLocation)您的整个对象是空的还是仅此属性?
@Html.ActionLink("Désactiver", "ActivateOffreLocation", new { id = item.Publication_ID }) |
<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>