0

我只是想由你们中的一些人来运行它。VS 2012 中 MVC 4 项目的默认脚手架假定您的列表、详细信息、创建、编辑、删除页面都是独立的。

我创建了一个页面来处理主要模型实体及其相关实体的所有这些功能。

让我有点担心的部分是我如何分割这个功能。

用户通过这样的 div 与页面交互

<div id="createtrace">click</div>

它会触发一些将 div 的 id 附加到表单数据的 JS...

$("#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;
 }

这看起来合理吗?我在混蛋路由引擎吗?重新造轮子?

4

1 回答 1

1

你最好只为每个动作创建一个动作。将您的 JavaScript 发布到适当的 URL,例如 /CreateTrace/。

于 2013-10-22T16:24:07.440 回答