C# 从视图到HttpGet控制器操作方法获取值
这里是我的视图。我想将TempData[Id]传递给HttpGet控制器操作方法索引。如何传递此值。请帮助我。提前谢谢C# 从视图到HttpGet控制器操作方法获取值,c#,asp.net-mvc,asp.net-ajax,C#,Asp.net Mvc,Asp.net Ajax,这里是我的视图。我想将TempData[Id]传递给HttpGet控制器操作方法索引。如何传递此值。请帮助我。提前谢谢 @if (TempData["Id"] != null) { using (Html.BeginForm("Index", "QuestionnaireController", FormMethod.Get)) { <p>@SixSeconds.App_GlobalResources.Frontend.DeleteQuestionnaire</p>
@if (TempData["Id"] != null)
{
using (Html.BeginForm("Index", "QuestionnaireController", FormMethod.Get))
{
<p>@SixSeconds.App_GlobalResources.Frontend.DeleteQuestionnaire</p> <input type = "submit" value = "@SixSeconds.App_GlobalResources.Frontend.OK"/>
}
}
[HttpGet]
public ActionResult Index(string idQ, string idTT, string easyLoad)
{
Project project = _getProject(idQ);
ViewBag.LanguageCode = project.ItemLanguage.Code;
ViewBag.projectType = project.ProjectType.ToString();
per ricevere un questionario
int reportCredits = 0;
foreach (ProjectReportOption pro in project.ProjectReportOptions)
{
reportCredits += pro.Display && pro.ReportType != null ? pro.ReportType.Credits : 0;
}
@if(TempData[“Id”!=null)
{
使用(Html.BeginForm(“Index”,“QuestionnaireController”,FormMethod.Get))
{
@六秒钟。App_GlobalResources.Frontend.deleteQuestionly
}
}
[HttpGet]
公共操作结果索引(字符串idQ、字符串idTT、字符串easyLoad)
{
项目=_getProject(idQ);
ViewBag.LanguageCode=project.ItemLanguage.Code;
ViewBag.projectType=project.projectType.ToString();
每米
int reportCredits=0;
foreach(project.ProjectReportOptions中的ProjectReportOption pro)
{
reportCredits+=pro.Display&&pro.ReportType!=null?pro.ReportType.Credits:0;
}
您可以将数据作为路由值传递:
@using (Html.BeginForm("Index", "QuestionnaireController", new { idQ = TempData["Id"] }, FormMethod.Get))
{
}
您需要定义路线:
routes.MapRoute("NameOfThisRoute",
"QuestionnaireController/Index/{idQ}",
new { controller = "QuestionnaireController", action = "Index" });
感谢您的回复。我使用了该技术,但它提供了空例外。当我将这些值获取到HttpPost控制器方法时,工作正常,但我想获取HttpGet控制器操作方法。我更新了我的答案,尝试将数据作为路由值传递。此外,基于您的全局资源,此表单似乎用于删除调查问卷?仅此而已也就是说,通过GET方法更改数据(删除)不是一个好做法。使用POST会更好/更安全。它有几个优点:您不必添加特殊路由,您可以使用
AntiForgeryToken
使其更安全。但是,无论如何,如果您真的想要GET,上面的方法将适用于GET。