我在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) 我正在创建一个“高级输入表单”,其中包含大量用于搜索数据的输入。我的问题是:将大量数据从 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)
那么你会如何执行这个动作,或者你会这样做吗?
谢谢!
我从谷歌图表中获得了以下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)
有谁知道如何使这项工作?
所以假设你有以下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 ×2
c# ×2
asp.net ×1
asp.net-mvc ×1
edmx ×1
html ×1
javascript ×1
linq ×1
razor ×1
sql-server ×1