0

我正在为我的公司在 MVC Razor3 .NET 中开发一个网站。这是我第一次使用 MVC,但现在我已经获得了很多知识。只有一件事我似乎无法弄清楚。

我正在为一个服务中心的经理制作一个评分系统,他想按照他的操作员的方式对其进行评分。当他对事件进行评分时,他们应该能够看到评分并修复事件中的错误。但是,如果他们不同意收到的评分,他们必须能够反对并发送小评论。

因此,在操作员的审查视图中(他可以选择固定或反对)有以下代码:

<tr class="border_bottom">
@if (false == Model.Fixed)
{

using (Html.BeginForm("Objected", "IncidentCheck", FormMethod.Get))
{
<td colspan=3>
<input id="Code" name="Code" type="hidden" value="@Model.Code" />
<input class="text-box single-line" style="width:100%" id="Message" name="Message" type="text"  value="" /> </td>
<td><input type="submit" value="Object" /></td>

}
}

</tr> 

及时生成此 Html:

<tr class="border_bottom">
<form action="/IncidentCheck/Objected" method="get"><td colspan=3>
<input id="Code" name="Code" type="hidden" value="C1308-0059" />
<input class="text-box single-line" style="width:100%" id="Message" name="Message" type="text"    value="" /> </td>
<td><input type="submit" value="Object" /></td>
</form>
</tr>

现在显示很完美,但是每当我单击对象按钮时,它只会刷新页面而没有执行正确的操作。该操作的代码暂时无用,因为它永远无法到达,但函数如下所示:

       [HttpGet]
    [RoleFilter(Roles = "Operator")] // Custom role filter.
    public ActionResult Objected (string Code, string Message)
    {

        return View("Test");
    }

注意:HTML 是局部视图中的 Displaytemplate 的一部分,因此在局部视图中有更多的事件都具有相同的表单。(不确定这是否与它有关。)

我很确定我忽略了一些简单的东西。

在此先感谢 RoXaS

4

2 回答 2

1

糟糕,我犯了嵌套表单的意外错误,这是不允许的。

感谢用户 codebrain 和 Roel van Uden 发现了我的错误。谢谢你们在聊天中帮我回答这个问题。

于 2013-09-13T12:14:17.287 回答
0

如果您可以控制生成的 HTML,则可以尝试使用 Razor 语法

@using (Html.BeginForm(Objected, IncidentCheck, FormMethod.Get, 
           new { code= [Pass your code value here], 
                 message = [Pass your message value here] }))
{
     // Form elements.
}

代替

<form action="/IncidentCheck/Objected" method="get">
    // Form elements.
</form>
于 2013-09-13T11:43:36.423 回答