ASP.NET MVC通过按钮调用两个相同的视图动作

时间:2018-03-25 17:22:49

标签: asp.net asp.net-mvc

所以我在这个'测试版'应用程序上有两个功能,我在这里使用ASP.NET进行学习。

我遇到了该应用的问题。该应用程序有4个用户输入框,所有这些都是出于数学目的。第一对采用2个值进行相乘,而第二对采用两个值相加。

这里的问题是,如果我要乘以值,然后添加,乘法输出将消失(如果你要添加然后加倍也会发生,添加会消失)并且我希望不会发生这种情况。如果有人能够解决这个问题,这是代码:

@Repository()
@Transactional(value = "syBaseTransactionManager")
public interface GroupSybaseRepository extends GroupRepository <String,Group>{

}

@Repository()
@Transactional(value = "db2TransactionManager")
public interface GroupDB2Repository extends GroupRepository <String,Group>{

}

和视图:

public class HomeController : Controller
{
    public IActionResult Index(ExampleModel example, string Submit)
    {
        if (Submit == "Multiply")
        {
            double firstm = Convert.ToDouble(example.multFirst);
            double secondm = Convert.ToDouble(example.multSecond);
            example.multResult = firstm * secondm;
        }
        else if (Submit == "Add")
        {
            double firsta = Convert.ToDouble(example.addFirst);
            double seconda = Convert.ToDouble(example.addSecond);
            example.addResult = firsta + seconda;

        }

        return View(example);
    }

无论如何都要解决这个问题?任何建议都非常感谢!

2 个答案:

答案 0 :(得分:0)

一种解决方案是将ALTER TABLE `portfolio2` ADD UNIQUE `unique_idx`(`memberid`, `stocks_symbol`); 更改为DisplayFor,就像这样

EditorFor

实际问题是,当您第二次渲染页面时,您使用的模型没有初始化@using (Html.BeginForm("Index", "Home")) { <br /> @Html.EditorFor(m => m.multFirst) <br /><br /> @Html.EditorFor(m => m.multSecond) <br /><br /> @Html.EditorFor(m => m.multResult) <br /><br /> <input type="submit" name="Submit" value="Multiply" id="divide" /> <br /><br /> @Html.EditorFor(m => m.addFirst) <br /><br /> @Html.EditorFor(m => m.addSecond) <br /><br /> @Html.EditorFor(m => m.addResult) <br /><br /> <input type="submit" name="Submit" value="Add" id="divide" /> } ,因为先前计算的结果除了表单本身之外没有存储在任何地方,并且由于相应字段是显示字段而不是编辑字段,因此表单不会提交此值。

答案 1 :(得分:0)

您可以在会话中存储添加结果和多个结果,并在返回视图之前每次检索example.addResult和example.multResult(示例)