我有一个mvc表单(由一个模型),当提交时,我想获取一个参数
我有代码来设置表单并获取参数
我有代码来设置表单并获取参数
using (@Html.BeginForm("myMethod","Home",FormMethod.Get,new { id = @item.JobId })){ }
并在我的家庭控制器里面
[HttpPost] public FileStreamResult myMethod(string id) { sting str = id; }
但是,我总是得到错误
The resource you are looking for (or one of its dependencies) could
have been removed,had its name changed,or is temporarily
unavailable. Please review the following URL and make sure that it is
spelled correctly.
当我省略[HttpPost]时,代码执行文件,但是变量str和id为null。
请问如何解决?
编辑
这可能是因为控制器中的MyMethod不是ActionResult引起的?我意识到,当我有一种类型为Actionresult的方法,其方法绑定到一个视图,一切都很好。但是FileStreamresult类型不能绑定到View。如何将数据传递给这些方法?
解决方法
如有疑问,请遵循MVC惯例。
如果您还没有包含JobID的属性,请创建一个viewmodel
public class Model { public string JobId {get; set;} public IEnumerable<MyCurrentModel> myCurrentModel { get; set; } //...any other properties you may need }
强烈地输入您的观点
@model Fully.Qualified.Path.To.Model
为JobId添加一个隐藏的字段
using (@Html.BeginForm("myMethod",FormMethod.Post)) { //... @Html.HiddenFor(m => m.JobId) }
并接受模型作为您的控制器操作中的参数:
[HttpPost] public FileStreamResult myMethod(Model model) { sting str = model.JobId; }