小编Dav*_*d C的帖子

MVC Razor视图嵌套foreach的模型

想象一个常见的场景,这是我遇到的更简单的版本.我实际上有几层进一步筑巢......

但这就是场景

主题包含列表类别包含列表产品包含列表

我的控制器提供了一个完全填充的主题,包含该主题的所有类别,此类别中的产品及其订单.

订单集合有一个名为Quantity(以及许多其他)的属性需要可编辑.

@model ViewModels.MyViewModels.Theme

@Html.LabelFor(Model.Theme.name)
@foreach (var category in Model.Theme)
{
   @Html.LabelFor(category.name)
   @foreach(var product in theme.Products)
   {
      @Html.LabelFor(product.name)
      @foreach(var order in product.Orders)
      {
          @Html.TextBoxFor(order.Quantity)
          @Html.TextAreaFor(order.Note)
          @Html.EditorFor(order.DateRequestedDeliveryFor)
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用lambda然后我似乎只获得对顶级Model对象的引用,"Theme"不是foreach循环中的那些.

是我试图在那里做甚至可能还是我高估或误解了什么是可能的?

有了上面我在TextboxFor,EditorFor等上得到了一个错误

CS0411:无法从用法中推断出方法'System.Web.Mvc.Html.InputExtensions.TextBoxFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数.尝试显式指定类型参数.

谢谢.

c# asp.net view razor asp.net-mvc-3

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

CodeFirst EF4.1 MVC针对遗留数据库 - 多重性冲突

无论我把它混合在一起,都会给我带来错误.我有一种感觉,我错过了一些明显的东西,因为我不断收到这些错误.

在模型生成期间检测到一个或多个验证错误:

System.Data.Edm.EdmAssociationType :: Multiplicity与关系'Venue_Courses'中Role'Venue_Courses_Source'中的引用约束冲突.由于"从属角色"中的所有属性都是不可为空的,因此"主体角色"的多重性必须为"1".

System.Data.Edm.EdmAssociationEnd :: Multiplicity在关系'Venue_Courses'中的角色'Venue_Courses_Target'中无效.由于"从属角色"是指关键属性,因此从属角色的多重性的上限必须为1.

一个课程只能有一个场地,许多课程都可以使用场地

public class Course
{
    [Key]
    public virtual int Id { get; set; }
    public string Title { get; set; }
    public DateTime StartDate { get; set; }
    public int VenueId { get; set; }

    public virtual Venue Venue { get; set; }
}

public class Venue
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Course> Courses { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first asp.net-mvc-3

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

如何从.Net Core连接到Oracle数据库连接

在.netCore库中,我想连接到Oracle数据库.我有什么方法可以做到吗?

我已经在另一个SO帖子上尝试了这些建议,但它不起作用,也许从那以后就删除了?正如你在我的project.json中看到的,我正在尝试使用"net461".

我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client.我也知道Oracle尚未购买.netCore连接器.但即使在那里,我也无法让它工作,它很难获得System.Data,每当我尝试添加它时都会出错.

我的project.json看起来像这样:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Oracle.ManagedDataAccess": "12.1.24160719",
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": [
        "dnxcore50",
        "net461"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是我此刻尝试这样做的方式.

using Oracle.ManagedDataAccess.Client;

public class MyRepository
{
    public string GetServerVersion()
    {
        var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection");

        var serverVersion = _db.ServerVersion;
        return serverVersion;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是上面没有编译,因为它没有System.Data,我正在努力导入.

我没有根据任何特定的方式做到这一点,我只想在这个时间点找到最合理的选择.

c# oracle database-connection asp.net-core

21
推荐指数
4
解决办法
4万
查看次数

WCF:读取XML数据时已超出最大数组长度配额(16384)

我知道这已被问过很多次了,并相信我,我一直在寻找和尝试其中许多下午半天,但仍然无法超越这个.

我正在尝试通过Web服务提交一些表单内容(也可能包含附件),但是当我尝试附加除小文件之外的任何内容时,仍然会收到以下错误.

我的完整错误是:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:scChildForm时出错 .InnerException消息是'反序列化MashForms.Models.SCChildrenForm类型的对象时出错.读取XML数据时已超出最大数组长度配额(16384).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxArrayLength属性,可以增加此配额.第1行,第41713位.'.有关更多详细信息,请参阅InnerException.

无论我多少尝试在WCF服务和Web客户端的web.config中覆盖该值,它仍然会报告为最大错误和随后的错误.

WCF Web.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
        <!--<httpRuntime maxRequestLength="409600" executionTimeout="300" />-->
  </system.web>
  <connectionStrings>
    <add name="MashFormsContext" connectionString="Data Source=ServerName;Initial Catalog=MashFormsDev;Persist Security Info=True;User ID=UserName;Password=Password" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
                    <dataContractSerializer maxItemsInObjectGraph="2147483647" />
                    <serviceTimeouts transactionTimeout="05:05:00" />
                    <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" maxConcurrentInstances="2147483647" />
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!--<serviceMetadata httpsGetEnabled="true"/>-->
          <!-- To receive exception …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf web-services wcf-binding

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

SQL效率 - 使用dateAdd函数查询两次; 或SubQuery和DateAdd函数一次; 在BETWEEN的日期

费用不仅在SELECT中使用DateAdd函数,还在WHERE中使用; 或者使用Sub Query,它最初会返回比我需要的更多的数据,但是可以在数据库上再次使用DateAdd函数进行过滤.

执行计划似乎暗示它们是相同的.我想知道哪个更有效率?

    DECLARE @DateFrom DateTime
    SET @DateFrom = '2011-05-27'
    DECLARE @DateTo DateTime
    SET @DateTo = '2011-06-27'

    SELECT id, name, 
    dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
            dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM')) as itsm_requiredbyx
    FROM tablename
    WHERE dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
            dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM'))
            BETWEEN @DateFrom AND @DateTo

    ORDER BY itsm_requiredbyx desc

    ---------------------------------------------------------------------------------------------

    SELECT *
    FROM
        (
        select id, name, 
        dateAdd(hour, datediff(hour, getdate(), getutcdate()), --UTC offset
                dateadd(second, itsm_requiredbyx, '1/1/1970 12:00 AM')) as itsm_requiredbyx
        from tablename 
        ) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server performance

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

WCF显示DataMember中的DisplayAttribute或DisplayName

如何在我的WCF服务上显示DisplayName/Name属性?

这是WCF服务中的对象.

[DataContract]
public class Person
{
    [DataMember]
    public int PersonId { get; set; }
    [DataMember]
    [Display(Name = "Name")]
    public string Name { get; set; }
    [DataMember]
    [DisplayName("Date of Birth")]
    public DateTime? DateOfBirth { get; set; }
    [DataMember]
    public string Gender { get; set; }
    [DataMember]
    public string Telephone { get; set; }
    [DataMember]
    public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望描述性名称显示在我基于WCF服务创建的表单上.我怎样才能做到这一点?

在MVC4 View上显示代码

<div id="online">

        @Html.EditorFor(m => m.Name)

        @Html.EditorFor(m => m.Telephone)
        @Html.EditorFor(m => m.Fax)
        @Html.EditorFor(m => m.Email)

</div>
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc wcf wcf-binding asp.net-mvc-4

4
推荐指数
1
解决办法
2260
查看次数

LINQ Lambda:获取子集合的最后一项(where ==)

我有以下(我在CodeFirst中使用过):

public class MyForm
    {
        public int MyFormId { get; set; }
        //Many Form Properties
        public virtual ICollection<AuditItem> AuditItems { get; set; }
    }

public class AuditItem
    {
        public int AuditItemId { get; set; }
        public int MyFormId { get; set; }
        public IAppUser User { get; set; }
        public string ActionByUserStr { get; set; }
        public string ActionByUserDisplayName { get; set; }
        public DateTime DateOfAction { get; set; }
        public string TypeOfAction { get; set; }
        public int Step …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-entities entity-framework

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

创建子记录时,Kendo MVC Grid未将父ID传递给ClientID模板

我在分层网格中添加子记录时遇到问题.它不会从网格中的父级传递HeaderId.

任何人都可以发现问题,或者我是否尝试做一些不可能的事情?谢谢.

这是控制器动作:

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult BillDetail_Create(BillDetail billDetail, int billHeaderId)
        {
            if (billHeaderId == 0)
            {
                ModelState.AddModelError("billHeaderID", "add bill header first");
            }
            if (billDetail != null && ModelState.IsValid)
            {
                var target = new BillDetail
                {
                    Category = billDetail.Category,
                    Description = billDetail.Description,
                    Amount = billDetail.Amount,
                    BillHeaderId = billHeaderId,
                    BillDetailId = SessionBillDetails.Max(d => d.BillDetailId) + 1
                };

                //Get next Id in sequence

                billDetail.BillDetailId = target.BillDetailId;

                SessionBillDetails.Add(target);
            }

            return Json(new[] { billDetail }.ToDataSourceResult(new DataSourceRequest(), ModelState));
        }
Run Code Online (Sandbox Code Playgroud)

以下是观点:

@(Html.Kendo().Grid<BillHeader>()

    .Name("BillHeaders")
    .Columns(columns =>
    {
        columns.Bound(h …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 kendo-ui kendo-grid

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

更新子网格时刷新父级Kendo MVC网格

我想在更新子网格记录时更新父网格,这可能吗?如果是这样,任何人都可以提供任何建议吗?

首先,我不确定哪个事件最适合在子网格上使用.我希望触发子网格的CRUD操作,然后再次加载父网格的内容,最好是通过Ajax.

下面是我的网格:

@{
    ViewBag.Title = "Bills: Parent/Child";
}

<h2>Bills Index</h2>

@(Html.Kendo().Grid<BillParent>()
    .Name("BillParentsGrid")
    .Columns(columns =>
    {
        columns.Bound(h => h.Category);
        columns.Bound(h => h.Description);
        columns.Bound(h => h.Amount);
        columns.Command(command =>
        {
            command.Edit();
        }).Width(95);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model =>
        {
            model.Id(h => h.BillId);
            model.Field(h => h.BillId).Editable(false);
        })
        .Events(events => events.Error("error_handler"))
        .Read(read => read.Action("BillParents_Read", "Bill"))
        .Update(update => update.Action("BillParent_Update", "Bill"))
    )
    .Events(events => events.DataBound("dataBound"))
    .ClientDetailTemplateId("BillChildren")

      )

<script id="BillChildren" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<BillChild>()
          .Name("BillChildren_#=BillId#")
          .Columns(columns =>
          {
              columns.Bound(d => d.BillId).Width(50);
              columns.Bound(d => d.Description).Width(150);
              columns.Bound(d => d.Amount).Width(80);
              columns.Command(command …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-3 asp.net-mvc-4 kendo-ui kendo-grid

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