2015-11-06 2 views
0

У меня есть этот контроллер:Почему мой результат действия дает мне 404?

public class ActivityController : Controller 
    { 
     // GET: Activity 
     [HttpGet] 
     public ActionResult ProfessionalActivityForm() 
     { 
      return View(new Activity()); 
     } 
     public ActionResult TradeShow() 
     { 
      return PartialView("_AddTradeShow"); 
     } 
     public ActionResult InsertTradeShow(TradeShow TradeShow) 
     { 
      TradeShow.Insert(TradeShow); 
      return Content("Trade Show submitted successfully"); 
     } 
     public ActionResult Conference() 
     { 
      return PartialView("_AddConference"); 
     } 
     public ActionResult InsertConference(Conference Conference) 
     { 
      Conference.Insert(Conference); 
      return Content("Conference submitted successfully"); 
     } 
    } 

, когда я делаю GET для /Activity/Conference я получаю мой частичный вид вернулся ко мне очень хорошо. Однако когда я GET/Activity/TradeShow Я получаю 404. Тогда, если я переключу код в этом контроллере, чтобы Конференция появилась перед TradeShow, я получаю противоположные результаты - 404 для конференции и рабочий частичный просмотр для TradeShow.

Почему это? Кажется, я что-то фундаментальное здесь не хватает ...

Вот это JQuery Я использую для AJAX:

$('#ConferenceButton').on('click', function() { 
     $.ajax({ 
      type: "GET", 
      url: '/Activity/Conference', 
      success: function (data, textStatus, jqXHR) { 
       $('#partialViewContainer').html(data); 
       $('.focusMe').focus(); 
       //var top = $('.focusMe').offset().top; 
       //$("html, body").animate({ scrollTop: top }, 700); 
      } 
     }); 
    }); 
    $('#TradeShowButton').on('click', function() { 
     $.ajax({ 
      type: "GET", 
      url: '/Activity/TradeShow', 
      success: function (data, textStatus, jqXHR) { 
       $('#partialViewContainer').html(data); 
       $('.focusMe').focus(); 
       //var top = $('.focusMe').offset().top; 
       //$("html, body").animate({ scrollTop: top }, 700); 
      } 
     }); 
    }); 
+0

попытаться указать 'DATATYPE = "HTML"' в вас '$ .ajax' может что по умолчанию Intelligent Guess может решить, что происходит с контроллером. –

ответ

1

Вы можете попробовать заменить url в $.ajax({ к

url: '@Url.Action("Conference", "Activity")', 

и

url: '@Url.Action("TradeShow", "Activity")', 

Также, если ваши ConferenceButton и TradeShowButton использование ActionLinks в представлении, как это:

@Html.ActionLink("Conference Button", "Conference", "Activity", null, new { id = "ConferenceButton" }) 

, то вы могли бы использовать в url этот код:

url: this.href, 
Смежные вопросы