如何在MVC 3中为用户视图控件添加逻辑?

Bru*_*oLM 0 c# asp.net-mvc viewusercontrol asp.net-mvc-3

User View Control没有代码隐藏.那么,我应该在哪里/如何制作events元素呢?

我想了解MVC中控件的逻辑...

Dar*_*rov 7

MVC中没有用户控件,所以你不应该打扰控件的逻辑.MVC中没有PostBack.MVC中没有ViewState.MVC中没有事件.

有型号:

public class MyViewModel
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器操纵模型:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Name = "John"
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

和视图呈现模型中包含的数据:

@model AppName.Models.MyViewModel
<div>@Model.Name</div>
Run Code Online (Sandbox Code Playgroud)

当视图需要向控制器调用某些内容时,它们不再使用任何PostBack或事件:它们使用标准的HTML工件,例如用于发送GET请求的锚链接和用于发送POST请求的表单.

例:

@Html.ActionLink("click me", "Foo", new { param = "123" })
Run Code Online (Sandbox Code Playgroud)

将生成一个锚链接到Foo控制器操作param=123作为查询字符串参数传递:

<a href="/home/foo?param=123">click me</a>
Run Code Online (Sandbox Code Playgroud)

以下内容:

@using (Html.BeginForm("Foo", "Home"))
{
    @Html.TextBoxFor(x => x.Name)
    <input type="submit" value="OK">
}
Run Code Online (Sandbox Code Playgroud)

将生成一个HTML表单,允许您向Foo控制器操作POST一些信息:

<form action="/Home/Foo" method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="OK" />
</form>
Run Code Online (Sandbox Code Playgroud)

用于学习ASP.NET MVC的许多教程和视频的有用资源: