提交到新页面并下载文件

时间:2014-11-17 19:03:07

标签: c# asp.net-mvc-4

我有一些代码,允许用户在SQL数据库中创建和编辑记录。这很好用。但是,现在我希望它输出正在执行的操作的SQL脚本。我不知道该怎么做。这是我目前的代码:

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        @Html.ValidationSummary(true)
        <div class="form-group">
            <strong>ID:</strong>
            <div class="col-md-10">
                <p>
                    @Html.EditorFor(model => model.ID)
                    @Html.ValidationMessageFor(model => model.ID)
            </div>
        </div>
        <br />
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <button type="submit" class="btn btn-primary">Submit <i class="fa fa-caret-right"></i></button>
            </div>
        </div>
    </div>
}

public ActionResult Edit(int id)
{
    using (var client = new XServiceClient())
    {
        X x = client.Find(id);
        if (x == null)
        {
            return HttpNotFound();
        }
        return View(x);
    }
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(X x)
{
    if (ModelState.IsValid)
    {
        using (var client = new XServiceClient())
        {
            client.Edit(x);
            return Redirect("~/Home/Index");
        }
    }
    return View(x);
}

我在想我的控制器,我可以做这样的事情:

using (var client = new XServiceClient())
{
    var sessionID = Guid.NewGuid().ToString("N");
    var filename = String.Format("Session-{0}.sql", sessionID);
    var sqlString = "Update SQL String Stuff";
    File(System.Text.UTF8Encoding.UTF8.GetBytes(sqlString), "text/plain", filename);
    client.Edit(x);
    return Redirect("~/Home/Index");
}

我见过的大多数系统建议在该文件行上返回。但是,这不适用于该计划的其余部分。 如何获取提交按钮以将数据提交到服务器并将文件下载到用户?

0 个答案:

没有答案