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作为301
或302
。
听起来你是在要求某种类型安全?如果是这样,可以看看t4MVC https://github.com/T4MVC/T4MVC它可以让你写
return RedirectToAction(MVC.Customer.CustomerAndProduct(1,2,3));