MVC:用href替换HTML.ActionLink

时间:2012-10-27 08:50:29

标签: asp.net-mvc-3 anchor actionlink

早些时候我有ActionLink

 <%: Html.ActionLink("Add Race", "AddRace", 
          new {eventId = Model.EventId,fleetId=Model.SelectedFleet.ID}) %>

在我的页面上...它工作正常。但现在我的要求是必须检查FooEntity中是否有一些数据然后重定向到另一个视图,否则它应该显示alert消息..

所以我将ActionLink更改为ahref,并考虑使用$.ajax调用..但我的行为AddRace会相应地写入ActionLink。但现在我正在使用ahref所以我想制作ajaxcall,它会返回一些boolean并根据我的重定向或显示alert。我需要重新编写AddRace Action。我是MVC的新手,因此在更改我的AddRace操作时会感到困惑。

ahref

 <a href="#" onclick='checkFleetAddedandScroing()'>Add Race</a>

Action是:

 public ActionResult AddRace(Guid eventId, Guid fleetId)
    {
        try
        {
            var model = new RaceModel { EventID = eventId, FleetID = fleetId, IsAddPHRFBFactors = IsAddPhrfbFactors(eventId, fleetId) };
            SetFleetsInViewBagForAddRace(eventId);
            return View(model);
        }
        catch (Exception ex)
        {                
            throw;
        }            
    }

请建议我怎么做....

1 个答案:

答案 0 :(得分:1)

您需要使用相同的参数。

<a href="#" onclick='checkFleetAddedandScroing("<%= Url.Action("AddRace", 
    new {eventId = Model.EventId,fleetId=Model.SelectedFleet.ID}  %>")'>Add Race</a>

编辑:

你甚至不需要做一个标签。

 <%: Html.ActionLink("Add Race", "AddRace", 
      new {eventId = Model.EventId,fleetId=Model.SelectedFleet.ID}, 
      new {onclick="return myFunction()"}) %>

<script type="text/javascript">
    function myFunction() {
        return confirm("Click no to cancel the navigation, otherwise click yes");
    }
</script>

然后你会在javascript函数中执行你的ajax调用,当你想取消重定向时返回false。