1

大家好,我有一个表格,我有一个编辑项目链接......当我点击它时,它会将我带到一个编辑页面,我有用于编辑记录的文本框和一个保存按钮..但我点击保存按钮不工作任何人都可以帮助我我在哪里做错了这是我的代码

这是我的Edit.aspx页面:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Gridview_BugTracker.Models.BugTracker_DataHelper>" %>
<!DOCTYPE html>

<html>
<head runat="server">
 <title></title>
        <%: ViewBag.Title="Edit" %>
</head>
<body>
        <div>
             <% using (Html.BeginForm())
                 { %>
        <form action="Edit.aspx" method="post"></form>

        <%:Html.ValidationSummary(true)%>
        <fieldset>
                <legend>Projects</legend>

             <%:Html.HiddenFor(model => model.ProjectId)%>

                <div class="editor-label">
                     <%:Html.LabelFor(model => model.projectName)%>
                </div>
                <div class="editor-field">
                        <%:Html.EditorFor(model => model.projectName)%>
                        <%:Html.ValidationMessageFor(model => model.projectName)%>
                </div>

                <div class="editor-label">
                        <%:Html.LabelFor(model => model.Description)%>
                </div>
                <div class="editor-field">
                        <%:Html.EditorFor(model => model.Description)%>
                        <%:Html.ValidationMessageFor(model => model.Description)%>
                </div>

                <div class="editor-label">
                        <%:Html.LabelFor(model => model.status)%>
                </div>
                <div class="editor-field">
                        <%:Html.EditorFor(model => model.status)%>
                        <%:Html.ValidationMessageFor(model => model.status)%>
                </div>
                <p>
                        <input type="submit" value="Save" />
                </p>
        </fieldset>
<%} %>
                <%: Html.ActionLink("Back to List", "Index")%>
        </div>      
</body>
</html>

这是我的控制器功能:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit(int id, BugTracker_DataHelper updatemodel)
{
    SqlConnection editconn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BugTracker;Data Source=SSDEV6\SQLEXPRESS");
    {
            editconn.Open();
            SqlCommand ecmd = new SqlCommand("Select ProjectId,projectName,Description,status From Projects Where ProjectId=" + id, editconn);                 
            SqlDataReader dr = ecmd.ExecuteReader();
            if (dr.Read())
            {
                    updatemodel.ProjectId = Convert.ToInt16(dr["ProjectId"]);
                    updatemodel.projectName = dr["projectName"].ToString();
                    updatemodel.Description = dr["Description"].ToString();
                    updatemodel.status = dr["status"].ToString();
            }
            else
            {
                    dr.Close();
            }
            dr.Close();
            editconn.Close();
            return View(updatemodel);
    }
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(BugTracker_DataHelper updatemodel, FormCollection collection, int id)
{
    SqlConnection editconn = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BugTracker;Data Source=SSDEV6\SQLEXPRESS");
    {

            SqlCommand ecmd = new SqlCommand("EditGetList", editconn);
            ecmd.CommandType = CommandType.StoredProcedure;
            editconn.Open();
            ecmd.Parameters.Add("projectID", SqlDbType.Int).Value = updatemodel.ProjectId;
            ecmd.Parameters.Add("projectName", SqlDbType.VarChar).Value = updatemodel.projectName;
            ecmd.Parameters.Add("Description", SqlDbType.VarChar).Value = updatemodel.Description;
            ecmd.Parameters.Add("Status", SqlDbType.VarChar).Value = updatemodel.status;
            editconn.Close();   

            return View(updatemodel);
    }
}

当我单击 aspx 页面中的保存按钮时,它应该转到我的控制器中的编辑方法.....我在这里做错了什么............

4

1 回答 1

0

你应该有两种形式吗?

<% using (Html.BeginForm())
{ %>
     <form action="Edit.aspx" method="post"></form>

或者您是否尝试设置 BeginForm 的操作?

您按下的按钮实际上是第一种形式的一部分,而不是第二种形式。

所以这

 <form action="Edit.aspx" method="post"></form>

目前做的不是很多。

如果您希望保存按钮在第二种表单中执行某些操作,那么您需要将按钮放在表单标签内,如下所示:

 <form action="Edit.aspx" method="post">
    <input type="submit" value="Save" />
 </form>
于 2012-07-17T09:44:04.413 回答