這不是整齊,因爲它可以,但你可以使用這個「根」的行動:
public ActionResult Submit(string method)
{
return Redirect("Submit"+method);
}
public ActionResult SubmitCrash()
{
return View();
}
public ActionResult SubmitBug()
{
return View();
}
編輯
我不得不延長ActionNameAttribute滿足您的需求,讓你可能會這樣寫:
//handles http://MySite/Submit?method=Crash
[ActionNameWithParameter(Name = "Submit", ParameterName = "method", ParameterValue = "Crash")]
public ActionResult SubmitCrash()
{
return View();
}
//handles http://MySite/Submit?method=Bug
[ActionNameWithParameter(Name = "Submit", ParameterName = "method", ParameterValue = "Bug")]
public ActionResult SubmitBug()
{
return View();
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class ActionNameWithParameterAttribute : ActionNameSelectorAttribute
{
public string Name
{
get;
private set;
}
public string ParameterName
{
get;
private set;
}
public string ParameterValue
{
get;
private set;
}
public ActionNameAttribute(string name, string parameterName, string parameterValue)
{
if (string.IsNullOrEmpty(name))
{
throw new ArgumentException(MvcResources.Common_NullOrEmpty, "name");
}
this.Name = name;
this.ParameterName = parameterName;
this.ParameterValue = parameterValue;
}
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
return string.Equals(actionName, this.Name, StringComparison.OrdinalIgnoreCase)
&& string.Equals(controllerContext.HttpContext.Request.QueryString.Get(ParameterName)
, this.ParameterValue
, StringComparison.OrdinalIgnoreCase);
}
}
是否有'http:// MySite/Submit/Crash'選項給你?您可以使用自定義路由表條目來實現此目的。 – 2013-03-20 15:58:50
是的,它是如何做到的,但是這並不能回答我的問題。 – 2013-03-20 17:59:57