Như Brad Wilson đã viết, bạn có thể xây dựng liên kết của riêng bạn trong quan điểm của bạn bằng cách nối chuỗi đơn giản. Tuy nhiên, để thêm một tên đoạn để chuyển hướng tạo ra thông qua RedirectToAction (hoặc tương tự), bạn sẽ cần một cái gì đó như thế này:
public class RedirectToRouteResultEx : RedirectToRouteResult {
public RedirectToRouteResultEx(RouteValueDictionary values)
: base(values) {
}
public RedirectToRouteResultEx(string routeName, RouteValueDictionary values)
: base(routeName, values) {
}
public override void ExecuteResult(ControllerContext context) {
var destination = new StringBuilder();
var helper = new UrlHelper(context.RequestContext);
destination.Append(helper.RouteUrl(RouteName, RouteValues));
//Add href fragment if set
if (!string.IsNullOrEmpty(Fragment)) {
destination.AppendFormat("#{0}", Fragment);
}
context.HttpContext.Response.Redirect(destination.ToString(), false);
}
public string Fragment { get; set; }
}
public static class RedirectToRouteResultExtensions {
public static RedirectToRouteResultEx AddFragment(this RedirectToRouteResult result, string fragment) {
return new RedirectToRouteResultEx(result.RouteName, result.RouteValues) {
Fragment = fragment
};
}
}
Và sau đó, trong điều khiển của bạn, bạn muốn gọi:
return RedirectToAction("MyAction", "MyController")
.AddFragment("fragment-name");
Điều đó sẽ tạo URL chính xác.
là điều này sẽ được nhắm mục tiêu để được phát hành trong dev10? – ajma