【发布时间】:2018-07-31 00:34:15
【问题描述】:
在尝试让基本的 CRUD 在我的 Web 应用程序中工作时,我遇到了一些问题。我已经设法使用了
Html.Beginform("bla","bla", FormMethod.Get)
将字符串想要的数据正确查询到新视图。
照片证据:
现在我已经在互联网上搜索了教程,以及在表单中显示所述查询字符串数据的方法,但我没有发现任何对我有帮助的东西。
这是我希望填写的页面的视图代码和我的 ActionResults:
@using MvcApplication1.Models;
@model Klant
@{
ViewBag.Title = "ShowKlant";
}
<h2>ShowKlant</h2>
<div id="producetop" class="row">
@{ @*if (@Model == null)
{
<div>geen producten gevonden</div>
}
else
{*@
//foreach (Klant kl in Model)
//{
<div style="float: left">
<fieldset id="produce">
<form method="get">
<div><labe>ID: </labe><input type="hidden" name="id" value="@Html.Value("","")" /></div>
<div><label>Naam:</label> <input type="text" name="naam" value="" /></div>
<div><label>Woonplaats:</label> <input type="text" name="woonplaats" value="" /></div>
<div><label>Geboortedatum:</label> <input type="text" name="gebdat" value="" /></div>
<div><label>Geslacht:</label> <input type="text" name="geslacht" value="" /></div>
<div><label>Beschrijving:</label> <input type="text" name="beschrijving" value="" /></div>
</form>
</fieldset>
</div>
@*}*@
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
</div>
行动结果:
public ActionResult ShowKlant()
{
return View();
}
[HttpPost]
public ActionResult ShowKlant(int? idklant)
{
Klant k = new Klant();
KlantDBController sc = new KlantDBController();
k = sc.getById(idklant);
return View(k);
}
这是“推送”查询字符串的视图:
@using MvcApplication1.Models;
@model List<Klant>
@{
ViewBag.Title = "ShowAllKlanten";
}
<h2>ShowAllKlanten</h2>
@using (Html.BeginForm("ShowKlant", "Home", FormMethod.Get, new { @enctype = "multipart/form-data" }))
{
if (@Model == null)
{
<div>geen producten gevonden</div>
}
else
{
<div></div><br>
foreach (Klant kl in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => kl.idklant)
</td>
<td>
@Html.DisplayFor(modelItem => kl.naam)
</td>
<td>
@Html.DisplayFor(modelItem => kl.woonplaats)
</td>
<td>
@Html.DisplayFor(modelItem => kl.geboortedatum)
</td>
<td>
@Html.DisplayFor(modelItem => kl.geslacht)
</td>
<td>
@Html.DisplayFor(modelItem => kl.beschrijving)
</td>
<td>
@Html.ActionLink("Details", "ShowKlant", new { id = kl.idklant, naam = kl.naam, woonplaats = kl.woonplaats, gebdat = kl.geboortedatum, geslacht = kl.geslacht, beschrijving = kl.beschrijving }) |
@Html.ActionLink("Edit", "ShowKlant", new { id = kl.idklant }) |
@Html.ActionLink("Delete", "ShowKlant", new { id = kl.idklant })<br /><br />
</td>
</tr>
我希望能朝着正确的方向轻推,因为我现在完全糊涂了。
我先发制人地假设我的操作结果是完全错误的,但是我不确定如何纠正它们。
更多上下文:
public class DatabaseController : Controller
{
protected MySqlConnection conn;
public DatabaseController()
{
//Vul hier de juiste gegevens in!!
conn = new MySqlConnection("Server=localhost;Database=dating;Uid=root;Pwd=root;");
}
}
加载我的表的 SQL:
public List<Klant> getAllKlanten(String naam)
{
MySqlTransaction trans = null;
List<Klant> klanten = new List<Klant>();
conn.Open();
trans = conn.BeginTransaction();
try
{
string selectQuery = @"select * from klant;";
MySqlCommand cmd = new MySqlCommand(selectQuery, conn);
//MySqlParameter naamParam = new MySqlParameter("@naam", MySqlDbType.VarChar);
//naamParam.Value = "%" + naam + "%";
//cmd.Parameters.Add(naamParam);
cmd.Prepare();
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
Klant klant = new Klant();
klant.idklant = dataReader.GetInt32("idklant");
klant.naam = dataReader.GetString("naam");
klant.woonplaats = dataReader.GetString("woonplaats");
klant.geboortedatum = dataReader.GetDateTime("geboortedatum");
klant.geslacht = dataReader.GetString("geslacht");
klant.beschrijving = dataReader.GetString("beschrijving");
klanten.Add(klant);
Console.Write(klant.naam);
}
}
catch (Exception e)
{
throw new Exception("Product niet toegevoegd: " + e);
}
finally
{
conn.Close();
}
return klanten;
}
这是我最初的视图:
这就是我试图用所说的查询字符串填充的内容:
【问题讨论】:
-
很抱歉,在
Photo evidence之后我真的失去了你。你首先要做什么,- 然后我知道你已经找到了一些解决方案 - 但我不知道是什么,然后是什么你找到的解决方案有问题吗?!? -
对不起,我想要实现的是从查询字符串中获取显示的数据到一个表单中,我可以用它来编辑 de db(这部分我知道该怎么做)。但我无法将数据输入表单。
-
还是很模糊。这些行对我来说也是非常可疑的错误:
KlantDBController sc = new KlantDBController();k = sc.getById(idklant);(1) 你为什么提到实体框架 (2) 你的数据在哪里,什么样的数据库 (3) 你是否创建了一个edmx文件(如在 EntityModel ) 为您的数据? (4) 查询字符串是如何或从哪里来的?你似乎做错了一些基本的事情和/或在一个非常不同的思维平面上。你看过一些基本的 asp-mvc 例子吗? -
那些可疑的错误行也是我认为错误的,我将添加我的 db Connnection 和加载我的初始数据的 SQL。但是这会让我的问题变得很长。
-
如果它是一个控制器,你在一个动作方法中实例化它是完全错误的,并且给我的结论是你真的走错了路。我建议您完全清理您的代码,从 Visual Studio 执行 Build->Clean 并压缩整个文件夹并将其放在谷歌驱动器、保管箱的某个位置并在此处发布链接。然后用(A)你真正想要的是什么来更新你的问题(B)你在哪里尝试过缩小问题所在。您的问题可能不是您认为的那样,它可能更为根本。 :见tinyurl.com/stack-hints
标签: c# html asp.net-mvc-4 razor