首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mvc中将id传递给控制器

如何在mvc中将id传递给控制器
EN

Stack Overflow用户
提问于 2016-06-19 16:03:22
回答 2查看 3.4K关注 0票数 0

我有一个名为model的名为PostIDmodel和另一个名为post的model。在列表view中,当用户单击一个帖子向其添加图像时,它通过一个HtmlActionLink传递这个PostID

@Html.ActionLink("Add Images", "AddImages", new { id = item.PostID })

它工作得很好,但是我也需要将这个PostId保存在图像Model中。

代码语言:javascript
运行
复制
    public ActionResult AddImages(int id)
    {
        ImageViewModel images = new ImageViewModel();
        images.PostID = id;           
        return View(images);
    }
    [HttpPost]
    public ActionResult AddImages(ImageViewModel image, HttpPostedFileBase images)
    {            
        Image newImage = new Image();
        newImage.PostID = image.PostID;
        return View("Index");
    }

这样它就不能工作,当它保存时,PostID的值是0。我也尝试过使用ViewBag,但到目前为止没有任何进展。在AddImages View中,没有针对PostID属性的TextBoxFor或任何东西,因为它不会被用户设置或看到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-19 16:15:44

为了在PostID操作中获得HttpPost,您应该在视图的form标记中添加PostId的输入字段。

代码语言:javascript
运行
复制
@Html.HiddenFor(m=>Model.PostId)
票数 4
EN

Stack Overflow用户

发布于 2016-06-19 16:08:34

是的,PostID不是由用户设置的,但是您仍然需要将其放在<form>中,以便将其回发到HttpPost中的服务器。通常,我们使用hidden field来实现它。一些事情,比如:

代码语言:javascript
运行
复制
<form>
    @Html.HiddenFor(m => Model.PostID)

    <!-- Other fields here -->
</form>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37909137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档