Что бы я сделал, это оставил бы пустым Delete () и использовал бы только Delete (строковое имя пользователя)
В вашей URL-маршрутизации у вас будет что-то похожее на "/ {Controller} / {Action} / {username} /"?
Если у вас есть "/ {Controller} / {Action} / {Id} /", вам будет лучше выполнить Delete (идентификатор строки) и таким образом просто использовать URL-адрес для обработки этого "/ Account / Delete / davide /"
При этом используйте ваш маршрут по умолчанию, который должен быть примерно таким же, как и идентификатор по умолчанию ""
Тогда в вашем методе Delete (string id) есть:
public ActionResult Delete(string id)
{
if(string.IsNullOrEmpty(id)) return EmptyID();
// Continue normal Delete method
}
public ActionResult EmptyID()
{
// The method you were going to have on a blank delete.
}
Это или просто завернуть в один метод в if {} else {}
В любом случае, я бы просто использовал один метод и использовал бы по умолчанию ваше имя пользователя / идентификатор в вашем маршруте пустой строки и обработал бы его таким образом.
Если вы хотите связаться со мной, чтобы узнать о том, что я имею в виду, или что-то еще, помогите, напишите мне по адресу andrew @ my domain на моей информационной странице.
Редактировать: Во всяком случае, что сказал Берко, я не уверен, как Помогут Именованные Атрибуты - поэтому, пожалуйста, оставьте комментарий здесь, детализируя его для других парней, которые находят те же проблемы! :)