混淆MVC以及如何处理形式

我深谙ASP.NET的WebForms,并正在考虑我的代码转换为MVC 3混淆MVC以及如何处理形式

我学习MVC,并在它有一定的了解,但是,还有一个问题我还没有明白。

它是这样的:

随着WebForms的代码,我能有一个DropDownList,选择时,会一直触发通过JavaScript一键操作,而该按钮会一直触发方式要能已经填充了另一个DropDown,但是两个DropDown都是同一个窗体的一部分,并且用户可见的实际Button(并且要由用户手动按下)会触发一个Method,该窗口从这些DropDown中获取值以及其他领域。

事情是,我不知道如何用MVC做到这一点。根据我目前的理解,如果我想将表单数据发送到应用程序,它必须遵循一个模型。这是什么让我很困惑(从我目前的理解),我怎么得到第一个DropDown发送只有从第一个DropDown的数据?另外填充另一个下拉列表也是MVC的一个模糊想法,但特别是关于第一个DropDown的观点是让我最困惑的一点。

如果任何人都可以以任何方式帮助我,这将不胜感激。

回答:

让你的头在这里的最大区别在于ASP.NET MVC中没有旧式回发。

在这种情况下,您可以控制如何为下拉框获取新数据。

当表单完成并且我们准备将数据发送到服务器时,我们会将它作为特定类型发回给我们的控制器方法,但在此之前,我们可以访问我们需要的数据任何其他控制器方法。

就我个人而言,我会使用jQuery使用ajax请求来执行此操作,以返回JsonResult类型的控制器方法。

是这样的:

$.getJSON("/MyController/GetSecondDropdownValues", function(result) { 

$.each(result, function() {

$('#mySecondDropdown').append($("<option />").val(this.Name));

});

C#

public JsonResult GetSecondDropdownValues(string initialDropdownValue) 

{

/* Do the work to obtain the values here */

return Json(returnedValues);

}

回答:

Asp.net CLASIC遵循不同的心态比asp.net的MVC。第一个尝试模仿桌面表单应用程序和abstracs(隐藏)web平台的详细信息。 Asp.net mvc虽然是一个基于MVC的框架,但它实际上是一个'真正'的web框架,因为它不会试图隐藏任何与你相关的web。这就是说,浏览器提交的数据实际上是'数据来更新模型'而不是模型本身。在大多数教程中,您将看到发回的视图模型(或视图模型的一部分),但它只是浏览器提交的数据。对于asp.net mvc应用程序中的模型存在很多混淆。

我怎么得到的第一个下拉列表,从第一个下拉

你作出这样的下拉列表中选择窗体的唯一元素中只发送数据。在asp中。net mvc你可以在页面中看到尽可能多的表单(只要你不要混合它们),asp.net mvc就不会遵循webforms的表单思想。

或者,您可以通过ajax(使用jQuery)将字段的值提交给控制器,该控制器返回将在客户端处理的json。也许这就是你弹出第二个下拉列表的方法,当选择第一个下拉列表时,ajax请求被发送到控制器的一个动作,它将第二个下拉列表的内容作为json返回,然后通过javascript插入。

一个简单的提示,让你过渡更容易的asp.net mvc:任何视图相关(HTML - 包括窗体,JavaScript等)是独立于控制器。该视图只关心其(视图)模型,控制器关心它接收的数据。控制器返回一个通常是视图的结果,但可能是任何东西。控制器对视图细节(html,js)一无所知,它只知道视图数据(视图模型)。

回答:

我刚刚想起了几年前我问过的这个问题。另一种方式是使用$ .get(...)和jQuery(现在已经有很好的文档了...)

以上是 混淆MVC以及如何处理形式 的全部内容, 来源链接: utcz.com/qa/258687.html

回到顶部