2013-08-28 57 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」}) –

相關問題