标签: viewusercontrol

从控制器内部获取部分视图的HTML

我为我的mvc网站开发了一个简单的机制,通过jquery引入html,然后填充指定的div.一切都很好,看起来很酷.
我的问题是我现在正在我的控制器内部创建html标记(这在VB.net中很容易做到btw)我宁可不要混淆一些关注点.

是否可以使用自定义的"MVC View用户控件"来满足这种需求?我可以创建控件的实例,传入模型数据并渲染为html吗?然后,这将是一个简单的渲染和传递回调用浏览器的问题.

html asp.net-mvc viewusercontrol

27
推荐指数
5
解决办法
7万
查看次数

Asp.net MVC用户控件ViewData

当控制器基于模型呈现视图时,您可以使用索引器从ViewData集合中获取属性(即ViewData ["Property"]).但是,我有一个共享用户控件,我尝试使用以下方法调用:

return View("Message", new { DisplayMessage = "This is a test" });
Run Code Online (Sandbox Code Playgroud)

在我的消息控件上我有这个:

<%= ViewData["DisplayMessage"] %>
Run Code Online (Sandbox Code Playgroud)

我认为这会正确渲染DisplayMessage,但是返回null.经过大量的修补,我终于创建了一个"MessageData"类,以便强烈键入我的用户控件:

public class MessageControl : ViewUserControl<MessageData>
Run Code Online (Sandbox Code Playgroud)

现在这个电话有效:

return View("Message", new MessageData() { DisplayMessage = "This is a test" });
Run Code Online (Sandbox Code Playgroud)

并可以这样显示:

<%= ViewData.Model.DisplayMessage %>
Run Code Online (Sandbox Code Playgroud)

为什么在没有强大地键入用户控件的情况下,不会将DisplayMessage属性添加到ViewData(即ViewData ["DisplayMessage"])集合中?这是设计的吗?ViewData是否包含"DisplayMessage"的键是否有意义?

asp.net asp.net-mvc viewusercontrol viewdata

6
推荐指数
1
解决办法
5211
查看次数

具有前缀的控件的Asp.Net MVC2 Clientside验证问题

问题是:当我在页面上放置2个相同类型的控件时,我需要为绑定指定不同的前缀.在这种情况下,在表单不正确之后生成的验证规则.那么如何让客户端验证工作呢?

该页面包含:

<%
    Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.PhonePhone, Prefix = "PhonePhone" });
    Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.FaxPhone, Prefix = "FaxPhone" });
%>
Run Code Online (Sandbox Code Playgroud)

控件ViewUserControl <PhoneViewModel>:

<%= Html.TextBox(Model.GetPrefixed("CountryCode"), Model.Phone.CountryCode) %>
<%= Html.ValidationMessage("Phone.CountryCode", new { id = Model.GetPrefixed("CountryCode"), name = Model.GetPrefixed("CountryCode") })%>
Run Code Online (Sandbox Code Playgroud)

其中Model.GetPrefixed("CountryCode")只返回"FaxPhone.CountryCode"或"PhonePhone.CountryCode"取决于前缀


这是表单后生成的验证规则.它们被复制为字段名"Phone.CountryCode".虽然期望的结果是每个FieldNames"FaxPhone.CountryCode","PhonePhone.CountryCode" alt文本的 2个规则(必需,数量),但是 http://www.freeimagehosting.net/uploads/37fbe720bf.png

这个问题与Asp.Net MVC2客户端验证和重复ID的问题有些重复, 但建议手动生成ID并没有帮助.

validation client viewusercontrol prefixes asp.net-mvc-2

5
推荐指数
1
解决办法
1818
查看次数

如何将数据从视图传递到ASP.NET MVC中的UserControl?

假设我想做最简单的数据传递,如下所示:

<% For i = 0 To 10%>
    <%Html.RenderPartial("MyUserControl")%>
<% Next%>
Run Code Online (Sandbox Code Playgroud)

我想要做的是将变量i作为参数传递给UserControl,以便它显示一个数字,例如,有边框的div.

这怎么可能?

谢谢

c# vb.net asp.net-mvc user-controls viewusercontrol

3
推荐指数
1
解决办法
1919
查看次数

asp.net mvc - 视图和控制器

控制器如何知道要返回哪些视图?我认为这是通过命名约定,但我已经看到了实例,例如在Nerd Dinner应用程序中,名称不匹配.我在哪里或如何看到这种映射?谢谢.

asp.net asp.net-mvc viewusercontrol

2
推荐指数
1
解决办法
140
查看次数

在usercontrol MVC和C#中,当前上下文中存在名称'html'或名称'model'

我正在使用Microsoft MVC和C#.我创建了一个usercontrol(example.ascx),并在顶部继承System.Web.MVC.ViewUserControl<PostTransferViewModel>

现在,当我的模型名称附加到ViewUserControl时,我得到"名称'模型'在当前上下文中不存在"和"名称'Html'在当前上下文中不存在.如果我<PostTransferViewModel>从结尾删除了ViewUserControl然后一切正常,但我需要<PostTransferViewModel>.

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PostTransferViewModel>" %>

<div class="postTransferTank">
    <h2>
        Approved Post Transfers</h2>
    <% if (Model.ApprovedPostTransfers.Count() == 0)
       { %>
    <span class="emptyList">There are currently no approved Post Transfers for this tank.</span><br />
    <% } %>
    <% else
        { %>
    <%=Html.DisplayFor(x => x.ApprovedPostTransfers,"PostTransferList") %>
    <% } %>
    <br />
    <%=Html.ActionLink<PostTransferController>(x => x.NewPostTransfer(), "Enter Post Transfer", new { @class = "create-link" })%>
    <br />
    <% if (Model.DraftPostTransfers.Count() != 0)
       { %>
    <h2>
        Draft Post Transfers</h2>
    <%=Html.DisplayFor(x …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc user-controls viewusercontrol viewmodel

2
推荐指数
1
解决办法
1万
查看次数

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

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

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

c# asp.net-mvc viewusercontrol asp.net-mvc-3

0
推荐指数
1
解决办法
4314
查看次数