C# 如何在mvc中将id传递给控制器
我有一个名为image的C# 如何在mvc中将id传递给控制器,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我有一个名为image的model,属性名为PostID,还有一个名为post的model。在列表视图中,当用户单击帖子向其添加图像时,它通过HtmlActionLink @Html.ActionLink(“添加图像”,“添加图像”,新建{id=item.PostID}) 它工作正常,但我也需要在图像模型中保存该PostId public ActionResult AddImages(int id) { ImageViewModel images = new Im
model
,属性名为PostID
,还有一个名为post的model
。在列表视图
中,当用户单击帖子向其添加图像时,它通过HtmlActionLink
@Html.ActionLink(“添加图像”,“添加图像”,新建{id=item.PostID})
它工作正常,但我也需要在图像模型中保存该PostId
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视图中
没有文本框
或PostID
属性的任何内容,因为用户无法设置或查看它。是的,PostID
不是由用户设置的,但您仍然需要将其放入
中,以便它将以HttpPost
的形式回发到服务器。通常,我们使用一个隐藏字段
。比如:
<form>
@Html.HiddenFor(m => Model.PostID)
<!-- Other fields here -->
</form>
@Html.HiddenFor(m=>Model.PostID)
是的,PostID
不是由用户设置的,但是您仍然需要将其放入
中,以便它将以HttpPost
的形式发回服务器。通常,我们使用一个隐藏字段
。比如:
<form>
@Html.HiddenFor(m => Model.PostID)
<!-- Other fields here -->
</form>
@Html.HiddenFor(m=>Model.PostID)
为了在HttpPost操作中获得PostID
,您应该在视图的表单标签中为PostID
添加输入字段
@Html.HiddenFor(m=>Model.PostId)
为了在HttpPost操作中获得PostID
,您应该在视图的表单标签中为PostID
添加输入字段
@Html.HiddenFor(m=>Model.PostId)
在视图上创建输入以存储模型的id。通常是隐藏的输入。如果将视图模型属性重命名为ID
而不是PostID
,则无需执行任何操作-它将作为路由值添加到表单action
属性中(视图中不需要HiddenFor()
),在视图上创建输入以存储模型的ID。通常为隐藏输入。如果将视图模型属性重命名为ID
而不是PostID
,则无需执行任何操作-它将作为路由值添加到表单action
属性中(视图中不需要HiddenFor()
)这种方法是安全的还是最好的方法?据我所知,这是最简单的方法。这种方法是安全的还是最好的方法?据我所知,这是最简单的方法