我有一个内容页面,很高兴显示继承contentModel.我需要更改页面,以便它还可以显示另一个viewModel(例如revertedContent),但只有在需要向其他人显示正常的contentModel时才显示它.
我确信有一个简单的方法可以做到这一点只是一个痛苦,因为我需要确保页面不会在URL中更改,例如details.aspx保持不变,但可以显示当前内容或以前版本化的内容.
提前喝彩
我希望返回以下输出
<a href="#"><img src="/images/icons/tick.png" alt="" />More info</a>
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,则内容将以html编码.
<%= Html.ActionLink("<img src='/images/icons/tick.png' />More info", "OrderRegion", "Campaign", new {id = Model.Campaign.Id}, null) %>
Run Code Online (Sandbox Code Playgroud)
如何禁用html编码?
我正在尝试使用MVC2在VS 2010中使用Html.RenderAction()在我的母版页上呈现局部视图.这是我的RenderAction()调用:
<% Html.RenderAction(
"Menu",
"Navigation",
new
{
currentAction = ViewContext.RouteData.Values["action"],
currentController = ViewContext.RouteData.Values["controller"]
}
); %>
Run Code Online (Sandbox Code Playgroud)
但是,当它是导航控制器的构造函数时,它总是命中没有参数定义的构造函数.
public class NavigationController : Controller
{
public NavigationViewModel navigationViewModel { get; set; }
public NavigationController()
{
-snip-
}
public NavigationController( string currentAction, string currentController )
{
-snip-
}
[ChildActionOnly]
public ViewResult Menu()
{
return View(this.navigationViewModel);
}
}
Run Code Online (Sandbox Code Playgroud)
在我看到的所有示例中,这是使用RenderAction()调用传递参数的方式.如果我删除没有定义参数的构造函数,我不会得到任何错误消息,除了它抱怨.
如何让它调用定义了两个参数的构造函数?我希望能够在构建菜单时与currentAction和currentController进行比较,以正确突出显示用户当前所在的部分.
也许我正在寻找错误的东西或试图以错误的方式实现这一点.我使用Generic Handler动态生成图像.我目前可以使用以下方式访问我
ImageHandler.ashx?width=x&height=y
Run Code Online (Sandbox Code Playgroud)
我更愿意使用类似的东西访问我的处理程序
images/width/height/imagehandler
Run Code Online (Sandbox Code Playgroud)
这可能是我在谷歌上找到的几个例子与MVC2不兼容.
干杯.
我的模型上的许多属性需要表示一组简单的是/否单选按钮.我需要检查相应的单选按钮以获取预先输入的值.我偏袒了.这是我做的:
RadioButtonsYesNo.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<KeyValuePair<string,string>>" %>
<div id="<%:Model.Key %>">
<%: Html.ValidationMessage(Model.Key)%>
<ul class='RadioButtonsYesNo'><li>
<%: Html.RadioButton(Model.Key, "Yes", Model.Value == "Yes", new { id = Model.Key + "_Yes" })%>
<label for='<%: Model.Key %>_Yes'>Yes</label>
</li><li>
<%: Html.RadioButton(Model.Key, "No", Model.Value == "No", new { id = Model.Key + "_No" })%>
<label for='<%: Model.Key %>_No'>No</label>
</li></ul>
</div>
Run Code Online (Sandbox Code Playgroud)
用法
<% Html.RenderPartial("RadioButtonsYesNo", new KeyValuePair<string, string> ("MyProp",Model.MyProp)); %>
Run Code Online (Sandbox Code Playgroud)
传递感兴趣的属性并正确渲染RadioButtonFor是否有最佳实践?
谢谢.
我有aspx页面,我有类似的东西:
<%
string image;
if(cond)
image = "somestring";
%>
...
<% if (cond) { %>
<img src="<%= image %>" /> <!-- HereI get CS0165 exception: Use of unassigned local variable 'image' -->
<% } else { %>
<div> ... </div>
<% } %>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么我得到例外?如果我写string image = "";这个例外消失了.这很奇怪.我猜这个例外与aspx页面的呈现有关.有人可以解释为什么会这样吗?
我是新手,我尝试找到此错误消息的解决方案:
"传递到字典中的模型项的类型为'NerdDinner.Controllers.DinnerFormViewModel',但此字典需要类型为'NerdDinner.Models.Dinner'的模型项"
有类似的问题错误,但不是相同的上下文问题.我相信问题位于edit.aspx中,但仍然无法解决.
DinnersController控制器:
//
// GET: /Dinners/Create
public ActionResult Create()
{
Dinner dinner = new Dinner()
{
EventDate = DateTime.Now.AddDays(7)
};
return View(new DinnerFormViewModel(dinner));
}
Run Code Online (Sandbox Code Playgroud)
楷模:
namespace NerdDinner.Models
{
[MetadataType(typeof(Dinner_Validation))]
public partial class Dinner
{
}
public class Dinner_Validation
{
[Required(ErrorMessage = "Title is required")]
[StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Description is required")]
[StringLength(265, ErrorMessage =
"Description must be 256 characters or less")]
public …Run Code Online (Sandbox Code Playgroud) 在我的Site.Master中构建MVC 2.0网站并使用内容交付网络(CDN).我正在使用以下CDN:
所有这些CDN都使用http://传递
我的网站目前支持SSL和非SSL页面.导航到启用SSL的页面时,我收到错误,因为CDN链接到HTTP://
虽然我知道您可以使用SSL版本的CDN,但我的问题更像是:
由于我有非SSL和SSL页面共享相同的*Site.Master*我该怎么办?我是否应该只为SSL和非SSL页面启用SSL启用版本?或者我应该做一些"if ... else"?
任何这些方法的任何优点或缺点?
谢谢
如何将表单发布到HttPost Action方法并在新窗口中打开返回的View?
我试图找到一些方法来使用window.open函数和jQuery,但我找不到任何有效的东西......似乎应该有一个简单的方法在MVC中做到这一点?一切正常,从post方法返回普通视图,所以我需要的是在新窗口中打开返回的视图(发布页面可以保持原样).
有任何想法吗?
当我在母版页(<%: Session["companyname"].ToString() %>)中显示会话值时,页面上会显示以下信息{ CompanyName = TestCompany}.我如何获得价值?
谢谢你的帮助!