-1

我的问题是我正在尝试对 mvc webforms 做一些事情

page name = addition.aspx 
event = button1_click
int numberOne = convert.toint32(textbox1.text);
int numberTwo = convert.toint32(textbox2.text);
int myResult = numberOne + numberTwo;
label1.text = myResult.Tostring();

.

page name = addition.aspx (same page) 
event = button2_click
int numberthree = convert.toint32(textbox3.text);
int numberfour = convert.toint32(textbox4.text);
int myResult2 = numberOne + numberTwo;
label2.text = myResult2.Tostring();

我的问题是我想为 MVC 做同样的事情(事件在哪里......我想我必须在页面发布和页面获取上进行转换......我错了)

4

2 回答 2

3

您没有 MVC 的服务器端控件。如果你想让两个按钮触发不同的事件,你有几个选择。JQuery 默认包含在您的 MVC 项目中,并且非常流行。因此,我将向您展示一些示例。

创建两个提交按钮以在提交前切换表单操作。

使用 jquery 的示例:

HTML

<form action="">
   <input type="submit" id="first" value="first" />
   <input type="submit" id="second" value="second" />
</form>

JS

$(function(){
    // on document ready wire up click events  

    // handle click event for first button
    $('#first').on('click', function(){
         $('form').prop('action', 'PostActionOne'); // set the action on the form to handle first button post
    });
    // handle click event for second button
    $('#second').on('click', function(){
         $('form').prop('action', 'PostActionTwo'); // set the action on the form to handle second button post
    });
});

另外的选择:

使用带有单击事件的两个按钮来执行 ajax 请求来处理场景。

HTML

JS

$(function(){
    // on document ready wire up click events  
    $('#first').on('click', function(){
          $.ajax({
             type: 'POST',
             url: 'PostActionOne,
             data: data,
             success: success,
             dataType: dataType
         });
    });

    $('#second').on('click', function(){
          $.ajax({
             type: 'POST',
             url: 'PostActionTwo,
             data: data,
             success: success,
             dataType: dataType
         });
    });
});
于 2012-09-06T14:19:58.060 回答
1

ASP.NET WebPages 确实可以提供更好的事件驱动编程(可以说),但它不能在客户端运行。因此,无论您使用 WebForms 还是 MVC,如果您希望在浏览器网页上的按钮的单击事件上发生某些事情,请在 javascript、jquery 和使用 ajax 中进行触发器,这样您就不必重新加载整个页面每一次。

同样在 mvc 中你有一个助手叫做

@Ajax.ActionLink("linkname", "Action", "etc");

这可以让你工作得很快,只需阅读它。 http://msdn.microsoft.com/en-us/library/system.web.mvc.ajax.ajaxextensions.actionlink%28v=vs.108%29.aspx

于 2012-09-06T14:17:11.687 回答