2013-08-28 59 views
1

我有我命名SubAlertModalMVC 4控制器将不会显示视图

 [HttpPost] 
public ActionResult SubAlertModal(int alertid) 
{ 

    var SubAlerts = from sa in db.csSubAlerts 
        where sa.AlertID == alertid 
        select sa; 

    // csAlert cssubalert = db.csAlerts.Find(alertid); 


// return View(); 

    return Request.IsAjaxRequest() ? PartialView(SubAlerts) : 

     PartialView(SubAlerts); 

} 

的Index.cshtml页面上的初始构建后添加一个ActionResult的控制器我添加HTML.ActionLink看起来像folling

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.ActionLink("Sub_Alert", "SubAlertModal", new { id = item.AlertID }, new { 
    @class = "ModalOpener" }) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Routes) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Issue) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Detour) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.DateEntered) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.FullName) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.SendEmail) 
    </td> 
    <td> 
     @Html.ActionLink("Edit", "Edit", new { id = item.AlertID }, new { 
    @class="ModalOpener" }) | 
     @Html.ActionLink("Details", "Details", new {id = item.AlertID }) | 
     @Html.ActionLink("Delete", "Delete", new { id = item.AlertID}) 
    </td> 
</tr> 
} 

一个问题是第一个。 当我点击列表中的Sub_Alert时,它给了我一个404错误。 该网址是正确的。 是控制器与视图不匹配。 这就是我要在此时 @model IEnumerable的模式窗口或任何窗口加载

@{ 
ViewBag.Title = "SubAlerts"; 
} 

    <h2>SubAlert</h2> 
<div id="SubAlertModal" title="Sub Alert for the Alert"> 
This is a test modal 
and it appears to be working !! 

<table> 
<tr> 

    <th> 
     @Html.DisplayNameFor(model => model.Issue) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.Detour) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.DateEntered) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.EnteredBy) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.SendEmail) 
    </th> 
    <th></th> 
</tr> 

    @foreach (var item in Model) { 
<tr> 

    <td> 
     @Html.DisplayFor(modelItem => item.Issue) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Detour) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.DateEntered) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.FullName) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.SendEmail) 
    </td> 

</tr> 
} 

</table> 



</div> 

感谢视图

+0

什么是你的控制器的名字吗?家?如果不是主页,则需要明确地输入控制器名称。 – Sithu

+0

我的控制器名称是AlertController,我的所有其他操作都可以工作(创建,编辑,维护和删除)现在我创建了一个名为SubAlertModal(自定义)的新操作结果,但它仍然应该连接。当我点击进入控制器从视图进去与 –

回答

1

如果您通过链接访问的操作方法,那么HTTP动词是一个GET,而不是一个帖子。

您的操作方法设置为仅响应POST。

只需删除[HttpPost]或将其更改为[HttpGet]

+0

现在我得到这个错误?参数字典包含'MVC_CSAlerts.Controllers.AlertsController'中方法'System.Web.Mvc.ActionResult SubAlertModal(Int32)'的非空类型'System.Int32'的参数'alertid'的空项。可选参数必须是引用类型,可为空类型,或者声明为可选参数。 参数名称:参数 –

+0

如果您尚未对路线进行任何更改 - 则将您的'alertid'更改为'id' - 因为这将是默认参数 – Darren

+1

@ Html.ActionLink(“Sub_Alert”,“SubAlertModal”,new {alertid = item.AlertID},新的{@class =“ModalOpener”}) –

相关问题