我需要对ASP.NET MVC View进行一些计算,这是一种与表单提交不同的操作.我已尝试过各种方法通过ActionLink将当前Model传递给新的控制器操作,但该模型似乎没有被传递.
public ActionResult Calculate(MuralProject proj) { ProjectFormRepository db = new ProjectFormRepository(); List<Constant> 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方法,但我遇到了同样的问题
解决方法
[看到你的评论;我会在这里重新发布这个答案,这样你就可以将问题标记为已解决,并将其标记为社区wiki,这样我就不会得到代表 – Dylan]
<% Html.BeginForm("MyAction","MyController",FormMethod.Post); %> <input type="submit" name="submitButton" value="Send" /> <input type="submit" name="submitButton" value="Cancel" /> <% 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")); } }