标签: razor-2

ASP.NET MVC 4覆盖了发出的html名称和id

我正在尝试更改由其创建的html输入的发出名称@Html.HiddenFor.

我正在使用的代码:

@Html.HiddenFor(e => e.SomeProperty, new { @id = "some_property", @name = "some_property" }
Run Code Online (Sandbox Code Playgroud)

现在这适用于id,但它不适用于名称.现在我真的不关心id现在,我需要name改变,因为那是被发布回目标服务器的那个.

在那儿

  • 我可以SomeProperty在我的模型中申请的财产?
  • 一种Html.HiddenFor覆盖name属性的方法?

还是我坚持<input ...>用手做一个平原?

asp.net-mvc asp.net-mvc-4 razor-2

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

如何在MVC4的局部视图中添加脚本?

这是我在局部视图中的代码

@model Contoso.MvcApplication.Models.Exercises.AbsoluteArithmetic

@using(Html.BeginForm())
{
<div>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number1</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">+</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">@Model.Number2</span>
    <span style="width: 110px; float:left; text-align:center; font-size:2.5em;">=</span>
    <span>
            @Html.EditorFor(model => model.Result)
            @Html.ValidationMessageFor(model => model.Result)
    </span>
</div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)

请注意我的代码底部,我有一个@section,我意识到如果我在那里设置一个断点,它就不会运行.如果我在_Layout.cshtml中移动该行,则效果很好,但这不是主意.

如何在部分剃刀视图中告诉MVC4我想添加该库?

asp.net asp.net-mvc razor asp.net-mvc-4 razor-2

38
推荐指数
5
解决办法
9万
查看次数

Visual Studio 2015 Razor View MVC类型无法识别

语法错误

我安装了Visual Studio 2015并重新启动."MVC"类型在2015年未被识别,但仍在2013年得到认可.这是我的"视图"web.config:

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor-2 visual-studio-2015

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

ASP.NET MVC 4 jQuery验证脚本捆绑包不起作用

我已经对网站进行了一次升级以使用ASP.NET MVC 4,并使用以下代码来呈现我的jQuery验证包.

但是我收到以下错误:

Microsoft JScript runtime error: Object doesn't support property or method 'live'
Run Code Online (Sandbox Code Playgroud)

单击文本框时出现此错误:

Unhandled exception at line 1234, column 5 in http://localhost:13112/Scripts/jquery.validate.js

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'call': object is null or undefined
Run Code Online (Sandbox Code Playgroud)

我的捆绑代码:

    bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));
Run Code Online (Sandbox Code Playgroud)

我的_Layout.cshtml代码:

    @Styles.Render("~/Content/css")
    @Styles.Render("~/Content/themes/base/css")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/jqueryui")
    @Scripts.Render("~/bundles/modernizr")
Run Code Online (Sandbox Code Playgroud)

这是我呈现的HTML:

<link href="/Content/site.css" rel="stylesheet"/>

        <link href="/Content/themes/base/jquery.ui.core.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.resizable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.selectable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.accordion.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.autocomplete.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.button.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.dialog.css" …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc-4 razor-2

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

错误22无法从程序集加载"EnsureBindingRedirects"任务

我用vs 2013克隆了一个项目.当我运行它时,我得到了这个错误.

Error   1   The "EnsureBindingRedirects" task could not be loaded from the assembly D:\BMaster\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.Tasks.dll. Could not load file or assembly 'file:///D:\BMaster\packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.Tasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.   BargainMaster.Web
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4 razor-2

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

如何在ASP.Net MVC 4中为特定区域定义布局?

当我从MVC2直接进入MVC4时,我在这里玩得很开心,所以一下子学习Razor和其他所有东西.

我在这个新应用程序中使用了一个管理区域,我注意到当我去管理区域的控制器时它没有任何布局.我尝试将_Layout.cshtml复制到该区域的共享视图文件夹中,但它仍然呈现没有布局.我尝试搜索,但无法找到有关如何设置用于某个区域的布局的任何信息.

我知道我可以在特定视图上执行此操作,但我想为整个区域设置一次

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-areas asp.net-mvc-4 razor-2

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

RenderBody()和RenderSection()必须在每个子布局上?

我有三个简单的布局,

_Layout.cshtml(这是基础布局)

@RenderSection("something", required: false)
@RenderBody()
Run Code Online (Sandbox Code Playgroud)

_Main.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section something {
   Hey I'm actually on the _Main layout.
}
Run Code Online (Sandbox Code Playgroud)

Index.cshtml

@{
    Layout = "~/Views/Shared/_Main.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在动作中渲染索引视图时,我收到此错误,

尚未为布局页面"〜/ Views/Shared/_Main.cshtml"调用"RenderBody"方法.

但是等等,_Main.cshtml有一个父布局已经有了RenderBody().所以我错了,我RenderBody()是否应该呼吁每个孩子的布局?

asp.net asp.net-mvc razor asp.net-mvc-4 razor-2

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

ASP.NET MVC 4脚本捆绑在部署时导致错误

@Scripts.Render()当我没有捆绑脚本时,我的网站在localhost上正常工作,但是当我部署到我的服务器时,捆绑的Javascript必须包含错误,因为我页面上的所有Javascript都停止工作.

这是我的捆绑代码:

        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery-migrate-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                        "~/Scripts/jquery-ui-{version}.js",
                        "~/Scripts/jquery-ui.unobtrusive-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                        "~/Content/themes/base/jquery.ui.core.css",
                        "~/Content/themes/base/jquery.ui.resizable.css",
                        "~/Content/themes/base/jquery.ui.selectable.css",
                        "~/Content/themes/base/jquery.ui.accordion.css",
                        "~/Content/themes/base/jquery.ui.autocomplete.css",
                        "~/Content/themes/base/jquery.ui.button.css",
                        "~/Content/themes/base/jquery.ui.dialog.css",
                        "~/Content/themes/base/jquery.ui.slider.css",
                        "~/Content/themes/base/jquery.ui.tabs.css",
                        "~/Content/themes/base/jquery.ui.datepicker.css",
                        "~/Content/themes/base/jquery.ui.progressbar.css",
                        "~/Content/themes/base/jquery.ui.theme.css"));
        }
Run Code Online (Sandbox Code Playgroud)

这是我的渲染代码:

@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/modernizr")
Run Code Online (Sandbox Code Playgroud)

有人可以解释部署时我的Javascript可能会发生什么吗?

谢谢,亚历克斯.

javascript c# bundle asp.net-mvc-4 razor-2

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

视图标题中@model和@inherit的MVC4 Razor差异?

为了使视图强烈键入,我们可以使用@model@inherit.你能否告诉我他们两者之间有什么区别?

编辑:

请看这个例子.

.net c# asp.net-mvc-3 asp.net-mvc-4 razor-2

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

具有复合ViewModel的MVC和实体框架Html.DisplayNameFor

我对使用WPF/Silverlight的MVVM非常熟悉,但这是我第一次尝试使用MVC Web应用程序...这只是我的背景.

我创建了一个名为TestSitesController的控制器,它是从我的实体框架模型中的"站点"模型类(生成读/写操作和视图的模板)中自动生成的.我修改的唯一的东西是3个点,对于某些方法,有一个默认参数Guid id = null.我只是摆脱了"= null"一切正常.这是我改变的一个例子

public ActionResult Delete(Guid id = null)
{
    //....
}
Run Code Online (Sandbox Code Playgroud)

这被改为

public ActionResult Delete(Guid id)
{
    //....
}
Run Code Online (Sandbox Code Playgroud)

Site模型没有什么特别的SiteId,Abbreviation和DisplayName ...试图让这个问题尽可能简单.好的,所以我运行网站并转到htpp://.../TestSites/,一切都很完美.

我注意到我的所有视图(创建,删除,详细信息和编辑)都使用@model MVCWeb.MyEntities.Site,我现在完全可以使用它; 但在Index.cshtml视图中,我注意到它正在使用

@model IEnumerable<MVCWeb.MyEntities.Site>
Run Code Online (Sandbox Code Playgroud)

这适用于生成的模板,但我想使用"复合视图模型",也许这是我试图混合我的MVVM知识,但如果可能的话,将坚持使用.在我看来,复合视图模型只是一个特定于一个视图的模型,该视图由一个或多个实体模型以及像SelectedSiteId等其他属性组成.

所以我创建了一个非常简单的ViewModel,名为TestSitesViewModel

public class TestSitesViewModel
{
    //Eventually this will be added to a base ViewModel to get rid
    //of the ViewBag dependencies
    [Display(Name = "Web Page Title")]
    public string WebPageTitle;

    public IEnumerable<MVCWeb.MyEntities.Site> Sites;

    //Other Entities, IEnumberables, or properties go here
    //Not important for this example
}
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中添加了一个名为IndexWithViewModel的动作方法

public ActionResult …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4 .net-4.5 razor-2

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