asp.net-mvc – 提交表单并将数据传递给FileStreamResult类型的控制器方法

我有一个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;
}

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...