当前位置:  开发笔记 > 后端 > 正文

如何在ASP.NET MVC中执行辅助操作(即计算字段)?

如何解决《如何在ASP.NETMVC中执行辅助操作(即计算字段)?》经验,为你挑选了1个好方法。

我需要对ASP.NET MVC View进行一些计算,这是一种与表单提交不同的操作.我已经尝试了各种方法通过ActionLink将当前模型传递给新的控制器操作,但模型似乎没有传递.

public ActionResult Calculate(MuralProject proj)
{
    ProjectFormRepository db = new ProjectFormRepository();
    List constants = db.GetConstantsByFormType(FormTypeEnum.Murals);

    proj.Materials = new MuralMaterials();
    proj.Materials.Volunteers = this.GetVolunteerCount(constants, proj);

    this.InitializeView(); 
    return View("View", proj);
}

我的Html.ActionLink语法需要什么才能让我调用它并使返回的视图具有相同的模型数据(具有计算的更改)?或者,还有另一种方法可以实现这一目标吗?

我也尝试了一个Ajax.ActionLink方法,但我遇到了同样的问题

编辑:"为您的提交按钮命名,然后检查控制器方法中提交的值" 这里显示的方法是我正在寻找的.



1> Dylan Beatti..:

[看到你的评论; 我将在此处重新发布此答案,以便您可以将问题标记为已解决,并将其标记为社区维基,这样我就不会得到它的代表 - 迪伦]

为提交按钮指定名称,然后在控制器方法中检查提交的值:

<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>


<% Html.EndForm(); %>

张贴到

public class MyController : Controller {
    public ActionResult MyAction(string submitButton) {
        switch(submitButton) {
            case "Send":
                // delegate sending to another controller action
                return(Send());
            case "Cancel":
                // call another action to perform the cancellation
                return(Cancel());
            default:
                // If they've submitted the form without a submitButton, 
                // just return the view again.
                return(View());
        }
    }

    private ActionResult Cancel() {
        // process the cancellation request here.
        return(View("Cancelled"));
    }

    private ActionResult Send() {
        // perform the actual send operation here.
        return(View("SendConfirmed"));
    }

}


您如何将数据传递给相应的操作?
推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有