Return ActionResult as 301

本文关键字:as ActionResult Return | 更新日期: 2023-09-27 18:09:40

我想返回一个动作的RedirectResult,但没有Url.Action()。假设我有以下Controller

public class CustomerController : Controller
{
    public ActionResult Index()
    {
        var url = Url.Action("CustomerAndProduct", new { customerId = 1, orderId = 2, productId = 3} );
        return Redirect(url);
    }
    public ActionResult CustomerAndProduct(int customerId, int orderId, int productId)
    {
        // I want to get here...
    }
}

是否有任何方法我可以返回RedirectResult而无需手动指定操作名称和使用字符串的所有参数?原因是,如果操作名称或参数名称发生变化,我发现维护这些字符串很麻烦。那么在编译时就不会检测到。

也许像这样:

var url = Url.FromAction<CustomerController>(x => x.CustomerAndProduct(1, 2, 3));
return Result(url);

非常类似于Futures库:

Html.BeginForm<CustomerController>(x => x.CustomerAndProduct(1, 2, 3))

注意,我不想执行CustomerAndProduct。我只是想返回url作为301302

Return ActionResult as 301

听起来你是在要求某种类型安全?如果是这样,可以看看t4MVC https://github.com/T4MVC/T4MVC它可以让你写

return RedirectToAction(MVC.Customer.CustomerAndProduct(1,2,3));