我正在使用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