C# 尝试使用传统的asp.net MVC、Razor和EF实现单页功能
我只是想让你们中的一些人来做这件事。VS 2012中MVC 4项目的默认支架假定您的列表、详细信息、创建、编辑和删除页面都是分开的 我创建了一个页面,用于处理主模型实体及其相关实体的所有这些函数 让我有点担心的是我是如何分割这个功能的 用户通过如下div与页面交互C# 尝试使用传统的asp.net MVC、Razor和EF实现单页功能,c#,asp.net-mvc,entity-framework,single-page-application,C#,Asp.net Mvc,Entity Framework,Single Page Application,我只是想让你们中的一些人来做这件事。VS 2012中MVC 4项目的默认支架假定您的列表、详细信息、创建、编辑和删除页面都是分开的 我创建了一个页面,用于处理主模型实体及其相关实体的所有这些函数 让我有点担心的是我是如何分割这个功能的 用户通过如下div与页面交互 <div id="createtrace">click</div> 这似乎合理吗?我是不是在对路由引擎进行混蛋化?重新创建控制盘?您最好只为每个操作创建一个操作。将JavaScript发布到适当的URL,如/
<div id="createtrace">click</div>
这似乎合理吗?我是不是在对路由引擎进行混蛋化?重新创建控制盘?您最好只为每个操作创建一个操作。将JavaScript发布到适当的URL,如/CreateTrace/目标是什么?始终使用相同的Url,还是没有重新加载页面或其他内容?我的背景是web表单。我可以使用listview来处理实体的生命周期—创建、编辑、删除。会有一个页面刷新,但您仍然可以保持在同一页面上。mvc模型似乎想要将交互分离到不同的视图中——我想要一个视图。记下联系记录。我想要一个新的a按钮以及现有记录的列表。当我点击一条记录时,我希望它在那里显示详细信息,可编辑,以及该联系人的电话号码列表,我可以从中添加、编辑和删除。如果你想要一个视图,而不关心URL/刷新-只需使用一个视图。。。除了(
返回视图(“MyOnlyView”);
)之外,我不确定问题是什么……问题是我缺乏MVC/路由方面的经验。我现在明白了这个问题,是的,我可以使用默认路由。谢谢这是有道理的,这是我最初尝试的,但我认为我必须返回一个同名的视图。。。我再看一看。我的错误是试图返回视图而不指定视图名称。我的操作名称不必与视图名称匹配,只要我提供了我希望它使用的视图名称。
$("#createtrace").click(function () {
$('<input />').attr('type', 'hidden')
.attr('name', "action")
.attr('value', "ct")
.appendTo('#frm');
$("#frm").submit();
});
string action = Request.Form["action"].ToString();
switch (action)
{
case "ct":
trace trace = new trace();
trace.bookingid = vwbooking.bookings.bookingid;
if (ModelState.IsValid)
{
db.traces.Add(trace);
db.SaveChanges();
}
break;
case "ut":
vwbooking.traces.ToList().ForEach(
t =>
{
db.traces.Attach(t);
db.Entry(t).State = EntityState.Modified;
}
);
db.SaveChanges();
break;
}