Действие вызывается дважды

Все, я столкнулся с проблемой, когда действие MVC вызывается дважды. Пожалуйста, помогите просмотреть его.

Код просмотра прост.

<div class="divContainer">
    <ul>
        @foreach (var blobName in ViewBag.BlobList)
        {
            <li>@Html.ActionLink("Delete", "Delete", "LogBlob", new { blobUrl = blobName }, null)</li>
        }
    </ul>
</div>


public class LogBlobController : Controller
{
    public ActionResult Delete(string blobUrl)
    {
       //...
       //The action is call twice.
    }
}

Поскольку LogBlobController принадлежит области MVC с именем Log. Таким образом, конфигурация маршрута в AreaRegistration выглядит следующим образом.

public class LogAreaRegistration : AreaRegistration 
    {
        public override string AreaName 
        {
            get 
            {
                return "Log";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Log_default",
                "Log/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }
    }

И реализация по умолчанию RouteConfig MVC ниже.

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
            );
        }

И Html на странице выглядит так, как показано ниже.

<a href="/Log/LogBlob/Delete?blobUrl=%2Fserverlogcontainer%2F1a33f37c-4b21-41aa-9f48-0b5f6b86577f.zip">Delete</a>

Я сомневался, что причина дважды в том, что они (LogAreaRegistration и RouteConfig) работали одновременно. благодаря.


person Joe.wang    schedule 02.05.2014    source источник
comment
Нет, я не добавлял в ссылку никаких событий dom, таких как click.   -  person Joe.wang    schedule 02.05.2014
comment
Как знать... скачайте Fiddler, если у вас его еще нет, следите за HTTP-запросами чтобы увидеть, есть ли 2 вызовы действия. Также поэкспериментируйте с явной регистрацией маршрута или используйте атрибут [Route] в своем действии.   -  person Aydin    schedule 28.06.2014
comment
это решение подходит для вашей проблемы: stackoverflow.com/questions/1751266/   -  person habiat    schedule 12.11.2018