我正在使用MVC3(代碼優先),並遇到了一些奇怪的東西。發生這種情況時,我想刪除一個問題。當我寫這個問題的所有方面的頁面時,它的工作正常,但由於我需要在幾個頁面中的相同的東西,我想我把它放在一個單獨的頁面,並與頁面@RenderPage
。刪除不與@RenderPage一起工作
當我用選項一做,刪除工作完美,但是當我用第二個選項時,刪除不起作用。有人可以請我解釋一下這是怎麼回事,如果我能解決這個問題,那麼我可以使用@RenderPage
。
爲了澄清我給一些代碼:
選項1
<div class="Question">
<div class="QuestionHeader">
<div class="QuestionTitle">@Html.DisplayFor(model => model.Title)</div>
<div class="QuestionDate">@Html.DisplayFor(model => model.Date)</div>
</div>
<hr />
<div class="display-field">@Html.DisplayFor(model => model.Message)</div>
<div class="spacing">
<hr />
<div class="QuestionAuthor>@Html.DisplayFor(model => model.Author)</div>
</div>
@using (Html.BeginForm()){
<p class="bottomNav">
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to list", "Index")
</p>
}
選項2
@RenderPage("~/Views/Shared/_InitQuestion.cshtml")
@using (Html.BeginForm()){
<p class="bottomNav">
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to list", "Index")
</p>
}
(我不認爲有任何這裏,但如果你看到一個錯字:對不起,但我不能複製/粘貼代碼,因爲我不是從我的工作計算機上寫的,我敢肯定在我的電腦上沒有任何錯字,我只看到問題的細節罰款與@RenderPage
,我只是不能刪除它(不會去控制器的ActionResult
,HttpPost
部分刪除))
您可能需要在Html.BeginForm中指定控制器/操作。同樣,你沒有在表單中傳遞任何參數,所以你ActionResult可能沒有你正在刪除的問題的線索。 – reinder 2013-04-11 09:33:59
他確實知道哪個問題。我概述了按地位分開的所有問題。只有未回答的問題可以被刪除,所以在該表中有一個帶有參數的ActionLink(「刪除」,「刪除」,新的{id = item.QuestionID}。如果你點擊那個鏈接,你會看到詳細信息。刪除按鈕,這是行不通的)。同樣在ActionResults(get和post)中,他得到了問題的id。就像我說的,whithout @RenderPage刪除工作得很好。但我會嘗試FormMethod.Post。 – 2013-04-11 09:48:07
添加FormMethod .Post to Html.BeginForm does not help。另外把Html.BeginForm(「刪除」,「問題」,FormMethod.Post)什麼都不做。 – 2013-04-11 09:50:16