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

时间:2011-01-26 22:50:41

标签: c# asp.net-mvc asp.net-mvc-3 viewusercontrol

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

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

5 个答案:

答案 0 :(得分:7)

MVC中没有用户控件,因此您不必担心控件的逻辑。 MVC中没有PostBack。 MVC中没有ViewState。 MVC中没有事件。

有模特:

public class MyViewModel
{
    public string Name { get; set; }
}

操纵模型的控制器:

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

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

@model AppName.Models.MyViewModel
<div>@Model.Name</div>

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

示例:

@Html.ActionLink("click me", "Foo", new { param = "123" })

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

<a href="/home/foo?param=123">click me</a>

以及以下内容:

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

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

<form action="/Home/Foo" method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="OK" />
</form>

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

答案 1 :(得分:1)

个人id在控制器中执行逻辑或让控制器调用为您工作的业务逻辑类。然后控制器将返回视图。将模型从控制器传递到视图中,然后将模型从视图传递到局部视图(MVC等效于用户控件)

这意味着视图/部分视图中没有逻辑,这意味着您可以以非常干净的方式渲染模型

这有意义吗?

答案 2 :(得分:0)

您似乎过于依赖WebForms页面生命周期。

MVC表面上的编程方法与WebForms根本不同。它更类似于Ruby On Rails。

帮助您学习MVC的一些资源包括:

Official MVC Web site

Scott Hanselman's NerdDinner project

答案 3 :(得分:0)

答案 4 :(得分:0)

我还会推荐Scott Hanselman的NerdDinner项目..这是一个学习ASP.NET MVC框架的好项目。

还阅读并重新阅读Darin Dimitrov的答案..它包含了如何在MVC中处理数据的基础知识