Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在传递模型的情况下重定向到操作?_C#_Asp.net_Asp.net Mvc_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 如何在传递模型的情况下重定向到操作?

C# 如何在传递模型的情况下重定向到操作?,c#,asp.net,asp.net-mvc,asp.net-core,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,我有一个模型类,用于验证一些用户输入 我有一个控制器,具有以下功能 public IActionResult Checkout(GiftCard giftCard) { } public IActionResult Preview(GiftCard giftCard) { return RedirectToAction("Checkout", giftCard); } 我想知道我怎么能在一个不同的行动重定向它回到它,如 public IActionResult Preview(Gif

我有一个模型类,用于验证一些用户输入

我有一个控制器,具有以下功能

public IActionResult Checkout(GiftCard giftCard)
{
}
public IActionResult Preview(GiftCard giftCard)
{
    return RedirectToAction("Checkout", giftCard);
}
我想知道我怎么能在一个不同的行动重定向它回到它,如

public IActionResult Preview(GiftCard giftCard)
{
    return RedirectToAction("Checkout");
}
上面的方法不起作用,因为asp.net正在尝试在没有以下模型的情况下查找操作

public IActionResult Checkout()
{
}

如果您的url非常长,请制作一个短url,以便加载该url并从此处重定向,如果您使用ajax,则它将不可见

如果您的url非常长,请制作一个短url,以便加载该url并从此处重定向,如果您使用ajax,它将不可见

您可以使用另一个名称的操作,并将操作选择器应用于重命名的方法。像下一个:

[ActionName("Checkout")]
[HttpPost] //Recomend you send user input via post
[ValidateAntiForgeryToken] // and use validation token
public IActionResult CheckoutConfirmed(GiftCard giftCard)
{
    //your code
}
public IActionResult Checkout()
{
    //your code
}
  • 查看更多关于
  • 如果你需要更多的信息,你可以在那里找到-
  • 此外,你还可以找到关于在那里发布的文章-

您可以将操作与其他名称一起使用,并将操作选择器应用于重命名的方法。像下一个:

[ActionName("Checkout")]
[HttpPost] //Recomend you send user input via post
[ValidateAntiForgeryToken] // and use validation token
public IActionResult CheckoutConfirmed(GiftCard giftCard)
{
    //your code
}
public IActionResult Checkout()
{
    //your code
}
  • 查看更多关于
  • 如果你需要更多的信息,你可以在那里找到-
  • 此外,你还可以找到关于在那里发布的文章-

重定向到操作
还有一个名为
routeValues
的参数,您可以使用该参数传递
GiftCard
,如下所示

public IActionResult Checkout(GiftCard giftCard)
{
}
public IActionResult Preview(GiftCard giftCard)
{
    return RedirectToAction("Checkout", giftCard);
}

redirectoaction
还有一个名为
routeValues
的参数,您可以使用该参数传递
GiftCard
,如下所示

public IActionResult Checkout(GiftCard giftCard)
{
}
public IActionResult Preview(GiftCard giftCard)
{
    return RedirectToAction("Checkout", giftCard);
}

您不能“隐藏”查询字符串值(如果不存在这些值,则不会将这些值传递给
Checkout()
方法。您应该持久化对象(例如,在数据库中)并传递其
ID
值,以便可以在GET方法中再次检索该对象(一个选项是使用
TempData
,但如果用户刷新浏览器,则会失败)您的示例是否已完成,因为我看不到您要执行的操作?为什么要从预览操作重定向到签出操作,而不是在razor视图中直接将模型发送到签出操作?您无法“隐藏”查询字符串值(如果不存在,则不会将值传递给
Checkout()
方法。您应该持久化对象(例如在数据库中)并传递其
ID
值,以便可以在GET方法中再次检索该对象(一个选项是使用
TempData
,但如果用户刷新浏览器,则会失败)您的示例是否已完成,因为我看不到您要执行的操作?为什么要从预览操作重定向到签出操作,而不直接将您的模型发送到razor视图中的签出操作?