我认为我的头衔有点令人困惑,让我解释一下:
我有IndexView
,其中显示公司的所有工作,我正在尝试添加PartialView
以及相应的图片。
我提交作业时,我不想在JobTable上保存图像。我希望图像是独立的,仅由UserID
链接。在页面详细信息中,我在int? ID
标题中有ActionResult
,我提出了两个LINQ
个查询,首先选择UserID
int? ID
,在第二个查询中从第一个查询中选择带有UserID的ImageID,所以我尝试做同样的事情,但是我在URL中没有ID,因为我显示了一个列表。
由于这是一个列表,我试图从foreach中的每个@Html.HiddenFor(model => item.ID)
获取值,但我无法将其传递回我的ActionResult(PartialView
而不是索引),I试过ViewBag
,Sessions
每次都是空的。我给了name
,Value
(大写和小写)@
但没有。
这里代码:
public ActionResult ImgPanel(Job job, int? ID)
{
var JobUserID = (from j in db.Jobs
where j.ID == ID /*Here should be the ID from the View of each job object*/
select j.UserID).FirstOrDefault();
var img = (from j in db.Images
where j.UserID == JobUserID
select j).ToList();
return View(img);
}
在此状态下,ImgPanel的ActionResult返回一个Image,但只返回第一个(在所有Jobs中相同的Image),第二次我的断点告诉我只对所有内容都为null。
查看代码:
@foreach (var item in Model)
{
@Html.HiddenFor(model => item.ID) /*I removed all tries with name Value Viewbags etc*/
@Html.Action("ImgPanel", "Jobs") /*Here I call the PartialView ImgPanel*/
<div class="row">
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<h3>@Html.DisplayFor(modelItem => item.ApplicationUsers.CompName)</h3>
<div class="caption">
<h4>@Html.DisplayFor(modelItem => item.Name)</h4>
<h5><strong>Days Left: </strong>@Convert.ToInt32((item.DateExp - DateTime.Now).TotalDays)</h5>
<p>
<a href="@Url.Action("Details", "Jobs", new { Id = item.ID})" class="btn btn-info" role="button">Details</a>
<a href="#" class="btn btn-success" role="button">Bookmark</a>
<a href="#" class="btn btn-danger" role="button">Hide</a>
</p>
</div>
</div>
</div>
</div>
}
答案 0 :(得分:1)
尝试传入包含您ID的viewmodel。
在您看来:
@Html.Action("ImgPanel", "Jobs", new MyViewModel() { ItemId = item.ID })
在您的控制器中:
public ActionResult ImgPanel(MyViewModel viewmodel)
{
var JobUserID = (from j in db.Jobs
where j.ID == viewmodel.ItemId /*Here you use the ID stored in the viewmodel*/
select j.UserID).FirstOrDefault();
var img = (from j in db.Images
where j.UserID == JobUserID
select j).ToList();
return View(img);
}
希望有所帮助!