从视图传递值,---> Jquery --->另一种观点

时间:2014-08-01 12:14:34

标签: jquery asp.net-mvc

包含我想要传递的值的第一个视图如下所示:

@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)
 }

有可能以某种方式实现这一目标吗? 谢谢!

3 个答案:

答案 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可以处理数据!)