内联模型编辑器MVC3

时间:2012-10-17 13:38:29

标签: c# asp.net-mvc-3 http-post

Ola ..我在编辑表中的少数模型时遇到问题。我在页面上有一个模型列表(使用foreach),类似于

<table id="grid-table" >

@foreach (var image in ViewBag.Images)
{
    <tr>

        <td >
            <a href="@Url.Action("ShowFullImage", new { id = @image.ID })" rel="lightbox[roadtrip]" title="@image.Description" >
                <img src="@Url.Action("ShowImageThumbneil", new { id = @image.ID })" alt="@image.AlternateText" />
            </a>
        </td>

        <td >
            @using (Html.BeginForm("SaveImageInfo", "Admin", FormMethod.Post))
            {
                @Html.TextAreaFor(m => m.Description) <br />
                @Html.TextBoxFor(m => m.AlternateText) <br />
                @Html.LabelFor(m => m.ID)

                <div id="item-post" >
                    <input title="Подтвердить" type="submit" value="Подтвердить" />
                </div>
            }
        </td>

    </tr>
}

我希望有办法编辑一个模型项目。在控制器中我有这样的事情:

    [HttpPost]
    public ActionResult SaveImageInfo(ImageModel imageModel)
    {
        Image img = _core.GetImageByID(_client, imageModel.ID);
        img.AlternateText = imageModel.AlternateText;
        img.Description = imageModel.Description;

        _core.SaveImageInfo(_client, img);
        return View();
    }

但是,当然,它不起作用.. 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

使用@Html.LabelFor(m => m.ID)更改@Html.HiddenFor(m => m.ID)。标签的内容不会与POST一起发送,但隐藏字段的内容是..

答案 1 :(得分:0)

我猜了一下,因为我不确切地知道你看到了什么问题,但是如果它是试图重定向,那么在保存之后,请尝试改变:

Html.BeginForm

Ajax.BeginForm