【发布时间】:2013-01-02 15:11:10
【问题描述】:
我有一个 mvc 表单(由模型制成),提交时我想获取一个参数 我有设置表单和获取参数的代码
using (@Html.BeginForm("myMethod", "Home", FormMethod.Get, new { id = @item.JobId })){
}
在我的家庭控制器中,我有
[HttpPost]
public FileStreamResult myMethod(string id)
{
sting str = id;
}
但是,我总是得到错误
您正在寻找的资源(或其依赖项之一)可以 已被删除、已更改名称或暂时 不可用。请查看以下 URL 并确保它是 拼写正确。
当我省略[HttpPost] 时,代码会执行文件,但变量str 和id 为空。
请问如何解决这个问题?
编辑
这可能是因为控制器中的 myMethod 不是 ActionResult 造成的吗?我意识到,当我有一个 Actionresult 类型的方法并且该方法绑定到一个视图时,一切正常。但是 FileStreamresult 类型不能绑定到视图。如何将数据传递给这些方法?
【问题讨论】:
-
您在表单声明中指定了 GET,但希望它调用您的 POST 方法?
-
我也尝试省略 HttpPost,但我的变量 str 和 id 始终为空。我尝试将表单方法更改为 post 但没有区别。
-
你的视图是强类型的吗?
-
我返回的不是视图而是 FileStreamResult。所以,我没有在控制器中向 myMethod 添加视图的选项
-
但是您仍然可以强输入包含表单的视图并使用 mvc 的内置约定和模型绑定传递数据。这不会影响您返回 fileStreamResult 的事实
标签: asp.net-mvc forms controller