包含我想要传递的值的第一个视图如下所示:
@foreach (var item in Model.BlogPosts)
{
@item.Id <---This is the id i want to pass along
<div id="allphotos"><p>Från bildbank</p></div>
}
这是#allphotos触发的Jquery。如果可能,我需要在这里与@ item.Id一起使用。
$("#allphotos").click(function () {
$("<div></div>")
.addClass("dialog")
.appendTo("body")
.dialog({
close: function () {
$(this).remove();
},
modal: true,
height: 600,
width: 700
})
.load("/Home/AllPhotos");
});
Jquery打开一个对话框,在这个对话框中我需要能够以某种方式访问@ item.Id。
这是&#34; final&#34; -view,我需要访问Id:
@model aPhoto_web.Models.AdminPages.AdminViewModel
/* Somewhere here i need to be able to read the @itemId in order to be able to pass it in the actionlink below. */
@foreach (var item in Model.Photographys)
{
<img id="imga" style="max-width: 100px;" src="@item.ImgUrl" />
<p>@item.ImgUrl</p>
@Html.ActionLink("Create New Part", "SetBlogImg", "Home", new {contId = @item.Id, imgurl = @item.ImgUrl}, null)
}
有可能以某种方式实现这一目标吗? 谢谢!
答案 0 :(得分:2)
您可以传递ID
,如下所示。
<div data-photoid="@(item.Id)" id="allphotos"><p>Från bildbank</p></div>
.load("/Home/AllPhotos?itemid=" + $(this).data("photoid"));
在controller
更改AllPhotos
方法,如下所示获取ID。
public ActionResult AllPhotos(int itemid)
然后,当您设置AdminViewModel
时,您可以使用该值。
答案 1 :(得分:1)
将<div id="allphotos">
属性设为:
<div id="allphotos" data-id="@item.Id">
$("#allphotos").click(function () {
var id=$(this).attr("data-id"); <-----retrieve data-id here as shown
$("<div></div>")
.addClass("dialog")
.appendTo("body")
.dialog({
close: function() { $(this).remove(); },
modal: true,
height: 600,
width: 700
})
.load("/Home/AllPhotos?itemid=" + id);
});
您的行动将如下所示:
public ActionResult AllPhotos(int itemid){....}
答案 2 :(得分:0)
将值发送到控制器方法,然后使用“新”视图设置@ Value == Html.Action(callMethodHere)
有很多关于以正确的方式使用MVC的文档(因为视图应该仅用于查看项目,Controller可以处理数据!)