当前位置: 首页 > 面试题库 >

在ASP.NET MVC中:从Razor视图调用控制器操作方法的所有可能方法

翁俊良
2023-03-14
问题内容

我知道这是一个非常基本的问题。

但是您能否告诉我 所有可用的选项从Razor View
调用“ 控制操作方法” [通常是任何服务器端例程]
以及哪种 情况最适合 用于哪种 情况

谢谢。


问题答案:

方法1: 使用jQuery Ajax Get调用( 部分页面更新 )。

适用于需要从数据库检索jSon数据的情况。

管制员的行动方法

[HttpGet]
public ActionResult Foo(string id)
{
    var person = Something.GetPersonByID(id);
    return Json(person, JsonRequestBehavior.AllowGet);
}

jQuery GET

function getPerson(id) {
    $.ajax({
        url: '@Url.Action("Foo", "SomeController")',
        type: 'GET',
        dataType: 'json',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: { id: id },
        success: function(person) {
            $('#FirstName').val(person.FirstName);
            $('#LastName').val(person.LastName);
        }
    });
}

人类

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

方法2: 使用jQuery Ajax Post调用( 部分页面更新 )。

适用于需要将部分页面数据发布到数据库中的情况。

post方法也与上面相同,只是将[HttpPost]Action方法替换 post为jquery方法并键入。

有关更多信息,请单击
此处将JSON数据发布到MVC控制器。

方法3: 作为表单发布方案( 整页更新 )。

适用于需要将数据保存或更新到数据库中的情况。

视图

@using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post))
{        
    @Html.TextBoxFor(model => m.Text)

    <input type="submit" value="Save" />
}

行动方法

[HttpPost]
public ActionResult SaveData(FormCollection form)
    {
        // Get movie to update
        return View();
   }

方法4: 作为表单获取方案( 整页更新 )。

适用于需要从数据库获取数据的情况

获取方法也与上述相同,只是将[HttpGet]Action方法替换 FormMethod.Get为View的form方法。

希望对您有帮助。



 类似资料:
  • 问题内容: 我有按钮。我想在单击按钮时路由新视图。该按钮如下所示: 单击按钮时,将运行以下方法: 我的控制器动作如下: 当我调试程序时,流程进入了我的控制器动作。但是索引网页不会路由到测试视图页面。没有发生错误。在这种状态下我该怎么办? 问题答案: 如果要刷新页面: 控制器: Index.cshtml: Test.cshtml: ==================================

  • 我正在尝试将子视图控制器添加到父视图控制器,并让父视图控制器通知子视图控制器旋转事件。但是,旋转消息不会转发到子视图控制器(这是默认行为)。为什么没有发生这种默认行为? 环境:iOS 7、XCode 5、OSX 10.9 我正在按照Apple文档中的说明实现一个自定义容器视图控制器:“创建自定义容器视图控制器”。我试图建立一个简单的父子关系来转发旋转事件。总体层次结构与此处重新绘制的文档图14-1

  • 问题内容: 我想在控制器中调用视图方法,但我不知道如何:)我寻求类似的示例,但没有找到它。我可以在这段代码中这样做吗?我是否必须重新构建?我使用javafx和fxml技术(来构建用户界面)。 我的视图文件(它具有gotoRegister()和gotoLogin()方法(我想调用它们)) 我的控制器(在这里我想调用gotoRegister()方法) 我的问题:我可以调用gotoRegister吗?或

  • 问题内容: 如何从视图调用Codeigniter控制器功能?当我在控制器中调用该函数时,获得404页面。 问题答案: Codeigniter是一个MVC(模型-视图-控制器)框架。从视图中调用函数确实不是一个好主意。该视图应仅用于演示,并且在进入控制器和模型中的视图之前,应先进行所有逻辑处理。 这很简单,但是确实提供了一个很好的方法。 我希望这有帮助!

  • 问题内容: 为什么无法从另一个内部访问其他控制器方法呢? 像这样。 已编译 如果您不能这样做,那为什么不呢?我还应该怎么做… 问题答案: 最近几个小时遇到相同的问题。我使用了api / services文件夹。它可能不完全是您所需要的,但是它是一个选择。