返回文件或视图的方法

2023-12-11

我正在使用下面的 jquery 来调用GetFile方法。 我想根据某些条件生成一个文本文件。这并不总是 始终生成一个文本文件。

如果条件 = True 生成文件

如果条件 = False 返回主页

现在如果我回来,我只会得到一张空白页。

我该如何写才能考虑到我的两个条件?

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("#Button1").click(function () {
            var SelCat = $("#mylist").val();              
            if (SelCat != 0) {
                var data = {
                    categoryId: SelCat   
                }
                var url = '@Url.Action("GetFile", "Home")' + '?' + $.param(data);
                window.location.assign(url);
            } else {
                alert("You need to select an city");
            }
        });
    });   
</script>
public void GetFile(int categoryId)
{
    var fileName = "ErrorMessages.txt";
    StringBuilder strObj = new StringBuilder();

    for (int i = 0; i <= 20000; i++)
    {
        strObj.Append("Number:" + i + " " + "Here is the first line" );
        strObj.Append(Environment.NewLine);
    }

    strObj.ToString();

    // ...
    // Based on some conditions determine whether to return a file or not
    // return;

    Response.Clear();
    Response.ContentType = "text/plain";
    Response.AddHeader("content-disposition", "attachment;  filename=" + fileName );
    Response.Write(strObj);
    //Response.BinaryWrite(strObj);

    Response.End();
}

IMHO:

  1. 改变你的GetFile成为一个ActionResult.
  2. 如果文件可以写入
    A。写入内存流(而不是响应)
    b. return File(memoryStream, "text/plain");
  3. 如果写不出来
    a. return Redirect("~/Main/Page");

伪代码:

public ActionResult GetFile(Int32 CategoryId)
{
  if (/*can be written*/)
  {
    using (MemoryStream stream = new MemoryStream())
    {
      using (StreamWriter writer new StreamWriter(stream))
      {
        /* writer.Write(...); */
      }
      return File(stream, "text/plain");
    }
  }
  return Redirect("~/main/Page"); // or redirectToRoute/RedirectToAction
}

并供参考:File()应对方法

FWIW:您可以继续使用StringBuilder并将其传递给其中之一File()重载,我想我只是更喜欢流。 :耸肩:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回文件或视图的方法 的相关文章

  • jQuery document read() 函数可能需要很长时间才能执行

    我的问题是 有时一段 JavaScript 通常是 Google Analytics 可能需要很长时间才能加载 尽管 HTML 准备好 遍历和操作 并不重要 如果我使用以下代码 document ready function p text
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 如何解决素数函数的大O表示法?

    我正在尝试理解 Big O 表示法 很抱歉 如果我问的问题太明显了 但我似乎无法理解这一点 我有以下 C 代码函数 我正在尝试为其计算 Big O 表示法 for i 2 i lt 100 i for j 2 j lt i j j if i
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • tcmalloc/jemalloc 和内存池之间有什么区别(以及选择的理由)?

    tcmalloc jemalloc是改进的内存分配器 还引入了内存池以更好地分配内存 那么它们之间有什么区别以及在我的应用中如何选择它们呢 这取决于您的程序的要求 如果您的程序有更多的动态内存分配 那么您 需要从可用的分配器中选择一个内存分
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • 在 Nest.js 中发送之前如何格式化响应?

    我按照文档进行操作 并能够添加用于响应映射的拦截器 我想要一致的 json 格式输出作为响应 我怎样才能用拦截器或其他比这种方法更好的方法来实现这一点 statusCode 201 message Custom Dynamic Messag
  • Twitter 引导选项卡和 JavaScript 事件

    我正在一个项目中使用 twitter bootstrap 特别是它的选项卡功能 http twitter github com bootstrap javascript html tabs http twitter github com b
  • jQuery 的 .each() 方法是并行还是顺序运行其语句?

    在我的 HTML 页面中 我有 4 个列表项和以下 jQuery 代码 li hide each function this delay 500 fadeIn 1000 我假设 each 函数内的语句将为第一个列表项运行 完成后为第二个列表
  • C++ 静态工厂构造函数

    我正在进行模拟 它需要创建多个相当相似的模型 我的想法是有一个名为 Model 的类并使用静态工厂方法来构造模型 例如 模型 createTriangle or 模型 createFromFile 我从以前的 java 代码中汲取了这个想法
  • 如何定义 Swagger UI 参数的默认值?

    我已将 Swagger Swashbuckle 集成到 NET Core 2 2 API 项目中 一切都很好 我的要求纯粹是为了方便 考虑以下 API 方法 public Model SomeEstimate SomeRequest req
  • 为什么 ASP.NET MVC 上的控制器是基于名称的?

    在 ASP NET MVC 中 我们需要对所有控制器使用后缀 Controller 这似乎是不必要的限制 有技术原因吗 我主要只是好奇 但可以看到更灵活的命名规则可以改善代码组织的情况 使用反射来搜索是否可以轻松发现可能的控制器类Contr
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • 如何选中表格中输入文本焦点上的复选框

    我试图在输入文本焦点上检查表 DOM 中的复选框 但无法访问复选框元素 但我的焦点正在工作 这是我的 jsfiddle 链接https jsfiddle net 9qha9vft https jsfiddle net 9qha9vft 这是
  • asp.net MVC ModelState.IsValid 返回 false

    我正在开发 ASP NET MVC 应用程序 我有一个视图模型如下 public class SampleInterestViewModel Properties defined One such property that shows a
  • javascript初学者:在javascript中添加动态样式? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 Javascript 创建 标签 https stackoverflow com questions 524696 how to create a style tag with javasc
  • JavaScript:如何在 Internet Explorer 中模拟更改事件(委托)

    UPDATE 回顾 小提琴和赏金 这个问题并没有引起太多关注 所以我将花一些时间来解决这个问题 我知道我的答案和问题都过于冗长 这就是为什么我继续设置这把小提琴 http jsfiddle net vVA8N 在我看来 这是我目前必须用来接
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR
  • 使用 Javascript 删除字符串的最后一个字符

    我有一个DIV与一些字符 如何在每次单击时删除文本中的最后一个字符DIV itself 删除第一个字符 div on click function this text function index text return text repl
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind

随机推荐