小编Cur*_*ing的帖子

传递的主键值的数量必须与实体上定义的主键值的数量相匹配

我在SQL Server中创建了一个视图,其中包含来自不同表的最重要的列.将表的内容打印到ASP.NET MVC视图工作正常,但是当我想获取单个记录的详细信息时,问题就出现了.

传递的主键值的数量必须与实体上定义的主键值的数量相匹配.

我导航到这样做的具体记录:

@Html.ActionLink("Details", "Details", new {  id=item.Record_number  })
Run Code Online (Sandbox Code Playgroud)

记录号是主键.我通过右键单击.edmx模型中的特定变量手动设置它.然后我尝试使用以下内容获取特定数据:

    //
    // GET: /Record/Details/5
    public ActionResult Details(int id = 0)
    {
        try
        {
            RecordDataView record = db.RecordDataView.Find(id); //HERE THE ERROR OCCUR
            if (record == null)
            {
                return HttpNotFound();
            }
            return View(record);
        }
        catch(EntityException)
        {
            return RedirectToAction("NoDatabaseConnection", "Home");
        }
    }
Run Code Online (Sandbox Code Playgroud)

模型看起来像这样:

namespace Implant.Database
{
    using System;
    using System.Collections.Generic;

    public partial class RecordDataView
    {
        public int Record_number { get; set; }
        public Nullable<System.DateTime> DOB { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net sql-server asp.net-mvc entity-framework edmx

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

将大量参数传递给控制器​​?

我正在创建一个“高级输入表单”,其中包含大量用于搜索数据的输入。我的问题是:将大量数据从 HTML 传递到控制器的最佳方法是什么。

我问的原因是。假设您有这个 HTML 表单:

 @using (Html.BeginForm("Loading", "AdvancedSearch"))
    {    
       <input type="text" id="keyword">
       <input type="text" id="keyword1">
       <input type="text" id="keyword2">
       <input type="text" id="keyword3">
       <input type="text" id="keyword4">
       <input type="text" id="keyword5">
       <input type="text" id="keyword6">
       <input type="text" id="keyword7">
       <input type="text" id="keyword8">
       <input type="text" id="keyword9">

       <input type="submit" value="Search" style="width: 150px;" /> 
    }
Run Code Online (Sandbox Code Playgroud)

然后像这样将它全部传递给控制器​​将是非常讨厌的(我有更多的关键字):

public ActionResult Loading(string keyword1, string keyword2, string keyword3, string keyword4, string keyword5, string6
                         string keyword7, string keyword8, string keyword9){
//do things to the parameters!
return View();
}
Run Code Online (Sandbox Code Playgroud)

那么你会如何执行这个动作,或者你会这样做吗?

谢谢!

html asp.net asp.net-mvc-4

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

J#中的C#Razor foreach循环语法

我从谷歌图表中获得了以下javascript代码:

function drawTimeChart() {
    var dataArray = generateTimeChartArray();
    var data = google.visualization.arrayToDataTable([
    ['2001', '25'],
      ['2002', 35],
      ['2003', 25],
      ['2004', 55]
    ]);

    var options = {
        title: 'Reported devices in MAUDE based on the term since 1990',
        backgroundColor: '#EFEEEF',
        hAxis: { showTextEvery: 4 }
    };

    var chart = new google.visualization.LineChart(document.getElementById('MaudeTimeChart'));

    chart.draw(data, options);
}
Run Code Online (Sandbox Code Playgroud)

我插入数据的数据我想动态添加.我试过这样做:

var data = google.visualization.arrayToDataTable([
                @foreach (var item in Model.NumberOfReportedRecords){
                    [@Html.DisplayFor(modelItem => item.year), @Html.DisplayFor(modelItem => item.Status)]
                 }
                ]);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使这项工作?

javascript c# razor asp.net-mvc-4

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

使用LINQ获取多个节点值

所以假设你有以下XML结构.

 <Class>
  <Students>
    <Student>
      <StudentNo>555</StudentNo>
      <Firstname>Joe</Firstname>
      <Lastname>Smith</Lastname>
    </Student>
     <Student>
      <StudentNo>222</StudentNo>
      <Firstname>Smith</Firstname>
      <Lastname>Joe</Lastname>
    </Student>
  <Students>
</Class>
Run Code Online (Sandbox Code Playgroud)

而且你想使用linq获得所有的Firstnames和lastnames.现在我得到以下内容

foreach (XElement x in data.Descendants("Student").SelectMany(e => data.Descendants("Firstname")))
            {
                Console.WriteLine(x.Value);
            }
Run Code Online (Sandbox Code Playgroud)

但是我怎么能得到lastName呢?

.net c# linq

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