为什么我的行动结果会给我404?

时间:2015-11-06 13:26:33

标签: asp.net-mvc model-view-controller controller routes

我有这个控制器:

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。

这是为什么?好像我在这里缺少一些基本的东西......

这是我用于ajax的jQuery:

$('#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);
            }
        });
    });

1 个答案:

答案 0 :(得分:1)

您可以尝试将url中的$.ajax({替换为

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

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

此外,如果您的ConferenceButtonTradeShowButton在视图中使用ActionLinks,请执行以下操作:

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

然后你可以在url这段代码中使用:

 url: this.href,