Asp.net mvc 如何区分asp mvc 4表单中的回发操作

Asp.net mvc 如何区分asp mvc 4表单中的回发操作,asp.net-mvc,Asp.net Mvc,我有一个标准的ASP MVC 4表单,用户可以在其中编辑一些详细信息,然后单击“批准”或“拒绝”,这将导致返回帖子 当控制器收到回帖中的模型时,我如何知道单击了哪个按钮 我正在寻找一种标准的方法来实现这一点,这样我就不会迷惑下一个从事该项目的开发人员 编辑我用的是立柱 您需要为“批准”或“拒绝”执行两个单独的“操作”,对吗 我希望在控制器中有一个批准操作,在控制器中有一个拒绝操作,这样他们就可以发布到自己的操作中,而不是试图在一个控制器操作中处理这两个业务流程 这将使每个操作的责任变得清晰明了

我有一个标准的ASP MVC 4表单,用户可以在其中编辑一些详细信息,然后单击“批准”或“拒绝”,这将导致返回帖子

当控制器收到回帖中的模型时,我如何知道单击了哪个按钮

我正在寻找一种标准的方法来实现这一点,这样我就不会迷惑下一个从事该项目的开发人员

编辑我用的是立柱


您需要为“批准”或“拒绝”执行两个单独的“操作”,对吗

我希望在控制器中有一个批准操作,在控制器中有一个拒绝操作,这样他们就可以发布到自己的操作中,而不是试图在一个控制器操作中处理这两个业务流程


这将使每个操作的责任变得清晰明了。

您希望对“批准”或“拒绝”执行两个单独的“操作”,对吗

我希望在控制器中有一个批准操作,在控制器中有一个拒绝操作,这样他们就可以发布到自己的操作中,而不是试图在一个控制器操作中处理这两个业务流程


这将使每一项行动的责任变得清晰明了。

我认为最简单的是

将拒绝按钮的输入类型从
submit
更改为
按钮
,这样不会发回控制器,然后您可以使用几行代码将用户重定向到其他页面

我认为最简单的是

将拒绝按钮的输入类型从
submit
更改为
button
,这样就不会发回控制器,只需几行代码,您就可以将用户重定向到其他页面

这是一个在每种html格式中都遇到的棘手问题。这可以归结为您需要回发多少数据。。。如果您只需要识别模型,而实际上不需要查看表单数据,那么可以使用两种不同的表单轻松实现,这两种表单发布到不同的控制器:对于下一个开发人员来说非常透明和清晰:

<div class="container">

<form method="POST" action="/approve/123">
    <input type="submit">
</form>

<form method="POST" action="/decline/123">
    <input type="submit">
</form>

<div>

或者,如果您确实需要回发表单数据,我会将客户端onclick事件附加到相应更新表单操作的每个按钮。但是,对于下一个开发人员来说,这并不是很清楚

<div class="container">

<form method="POST" action="/">
    <input type="submit" value="Accept" id="btn-accept">
        <input type="submit" value="Decline" id="btn-decline">
</form>

</div>

$(function(){
$("#btn-accept").click(funcion(e)({
    e.preventDefault();
    $("form").attr("action", "/approve");
    $("form").submit();
}));
$("#btn-decline").click(funcion(e)({
    e.preventDefault();
    $("form").attr("action", "/decline");
    $("form").submit();
}));
});

$(函数(){
$(“#btn接受”)。单击(函数(e)({
e、 预防默认值();
美元(“表格”).attr(“行动”、“批准”);
$(“表格”)。提交();
}));
$(“#btn拒绝”)。单击(函数(e)({
e、 预防默认值();
美元(“表格”).attr(“行动”、“拒绝”);
$(“表格”)。提交();
}));
});

这是一个棘手的问题,在每种html格式中都会遇到。这可以归结为您需要回发多少数据。。。如果您只需要识别模型,而实际上不需要查看表单数据,那么可以使用两种不同的表单轻松实现,这两种表单发布到不同的控制器:对于下一个开发人员来说非常透明和清晰:

<div class="container">

<form method="POST" action="/approve/123">
    <input type="submit">
</form>

<form method="POST" action="/decline/123">
    <input type="submit">
</form>

<div>

或者,如果您确实需要回发表单数据,我会将客户端onclick事件附加到相应更新表单操作的每个按钮。但是,对于下一个开发人员来说,这并不是很清楚

<div class="container">

<form method="POST" action="/">
    <input type="submit" value="Accept" id="btn-accept">
        <input type="submit" value="Decline" id="btn-decline">
</form>

</div>

$(function(){
$("#btn-accept").click(funcion(e)({
    e.preventDefault();
    $("form").attr("action", "/approve");
    $("form").submit();
}));
$("#btn-decline").click(funcion(e)({
    e.preventDefault();
    $("form").attr("action", "/decline");
    $("form").submit();
}));
});

$(函数(){
$(“#btn接受”)。单击(函数(e)({
e、 预防默认值();
美元(“表格”).attr(“行动”、“批准”);
$(“表格”)。提交();
}));
$(“#btn拒绝”)。单击(函数(e)({
e、 预防默认值();
美元(“表格”).attr(“行动”、“拒绝”);
$(“表格”)。提交();
}));
});
为每个按钮指定名称(每个按钮相同)和值(每个按钮唯一)

为每个按钮指定名称(每个按钮相同)和值(每个按钮唯一)


我怀疑OP的下一个问题是“但是当他们点击两个按钮时,我如何改变表单操作”是的。用户正在索引页上输入详细信息,但如果我可以根据按下的按钮将这些详细信息发布回同一控制器中的另一个事件,那就太好了。我怀疑OP的下一个问题是“但是当他们单击两个按钮时,我如何更改表单操作”是的。用户正在索引页上输入详细信息,但如果我可以根据按下的按钮将这些详细信息发回同一控制器中的另一个事件,那将是非常棒的。您可以添加一些有关如何将数据发回服务器的详细信息吗?这仅仅是一个标准的HTML表单,还是在他们单击任意一个按钮时使用了一些ajax调用?类似的问题可能会有所帮助:。我发现这个答案在MVC3中很有效:提交的输入值不是吗?然后,您可以在控制器中使用if语句。您可以添加一些关于如何将数据发回服务器的详细信息吗?这仅仅是一个标准的HTML表单,还是在他们单击任意一个按钮时使用了一些ajax调用?类似的问题可能会有所帮助:。我发现这个答案在MVC3中很有效:提交的输入值不是吗?然后可以在控制器中使用if语句