You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET MVC应用中从视图向控制器传递临时数据

视图向控制器传递临时数据并用于重定向的方案

下面提供几种实用的实现方式,适配你的表单提交场景:

方法1:使用表单隐藏字段

在表单内添加隐藏输入框,把临时数据存入其中,提交表单时自动传递到控制器:

视图HTML代码

<form id="createFormName" action="/YourController/YourAction" method="post">
    <!-- 其他表单元素 -->
    <input type="hidden" id="tempData" name="TempDataValue" value="你的临时数据值" />
    <button id="btnContinue">提交</button>
</form>

控制器代码

[HttpPost]
public ActionResult YourAction(string TempDataValue)
{
    // 根据临时数据判断重定向逻辑
    if (TempDataValue == "特定值")
    {
        return RedirectToAction("TargetAction1");
    }
    else
    {
        return RedirectToAction("TargetAction2");
    }
}

动态设置临时数据的JS代码

如果临时数据是JS里动态生成的,可在提交前修改隐藏字段的值:

$('#btnContinue').click(function () {                  
    var createFormName = $("#createFormName");
    // 动态设置临时数据
    $("#tempData").val("动态生成的临时值");
    createFormName.submit();
});

方法2:通过URL参数传递

修改表单的action属性,直接把临时数据拼接到URL参数中(适合GET请求场景,或需要在URL中可见的情况):

JS代码

$('#btnContinue').click(function () {                  
    var createFormName = $("#createFormName");
    var tempValue = "你的临时数据";
    // 修改表单action,添加参数
    createFormName.attr("action", "/YourController/YourAction?TempDataValue=" + tempValue);
    createFormName.submit();
});

控制器代码

[HttpPost]
public ActionResult YourAction(string TempDataValue)
{
    // 重定向逻辑同方法1
    if (TempDataValue == "特定值")
    {
        return RedirectToAction("TargetAction1");
    }
    else
    {
        return RedirectToAction("TargetAction2");
    }
}

额外提示

如果需要在重定向后仍然保留临时数据供后续视图使用,可以在控制器中把接收的值存入TempData:

TempData["StoredTempData"] = TempDataValue;
  • 隐藏字段方式更适合敏感数据,URL参数会暴露在地址栏中,注意数据安全性。

内容的提问来源于stack exchange,提问作者Gopesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:17:17