【问题标题】:passing values from view to Controller N then to other View将值从视图传递到控制器 N,然后传递到其他视图
【发布时间】:2011-05-12 09:51:35
【问题描述】:
顾客:
<p></p>
<p></p>
<div> <% foreach (var item in Model)
         { %>
         You are viewing Users of Customer: <%:item.Customer %>
         <%break; %>
         <%} %></div>
    <p></p>
    <% Html.RenderPartial("EditUsers", Model); %>

<p>
    <%: Html.ActionLink("Create New", "Create", "Profile", null, null)%>
</p>

现在我必须通过 %: Html.ActionLink("Create New", "Create", "Profile", null, null)%> 传递 并且应该显示在创建视图 这是控制器 n 我也将提供 Create 视图

控制器: 公共动作结果创建() { 返回视图(); }

    [HttpPost]
    public ActionResult Create(string UserName, string Password, string FirstName, string LastName,
        string MiddleInitial,  string Email,string Telephone,  bool IsAdmin, bool IsSubAdmin)
    {
        UserDAL userDALObject = new UserDAL();
        tblUser newUser = new tblUser();

        newUser.Customer = customerNumber; 
        newUser.UserName = UserName;
        newUser.Password = Password;
        newUser.FirstName = FirstName;
        newUser.LastName = LastName;
        newUser.MiddleInitial = MiddleInitial;
        newUser.Email = Email;
        newUser.Telephone = Telephone; 

        newUser.IsAdmin = IsAdmin;
        newUser.IsSubAdmin = IsSubAdmin;

        userDALObject.AddUserDetails(newUser);
        TempData["UserCreationMsg"] = string.Format("User named :{0}, is created",UserName);
        return View();
    }
    public ActionResult EditUser(string id)
    {
        UserDAL userDALObject = new UserDAL();
        tblUser userDetails = userDALObject.GetUser(Int32.Parse(id));
        TempData["EditUserId"] = id;
        return View(userDetails);
    }

创建视图

<% using (Html.BeginForm()) {%>
    <%: Html.ValidationSummary(true) %>

    <fieldset>          


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

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

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

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

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

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

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


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

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

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

【问题讨论】:

    标签: asp.net-mvc visual-studio-2010


    【解决方案1】:

    你的问题到底是什么?

    另一方面,您应该使用模型绑定将人员对象传递给 CreateView 操作方法,而不是分别传递每个属性。它会减少很多你的代码。搜索模型绑定了解更多详情。

    【讨论】:

    • 只想在创建页面上显示CustomerNo
    • 为什么不简单地将 CustomerNo 放在 ViewData 中并在视图中使用它。就像您将 TempData 用于错误消息一样。没有?
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多