首页 > 解决方案 > 如何将值从 HTML 控件传递到 ASP.NET 服务器?

问题描述

我喜欢在我的页面中实现允许用户读取和修改数据并将这些数据保存到 XML 文件的功能

我能够从 xml 读取数据,在页面上显示,并将数据保存到文件,但我无法将用户数据输入的数据从 html 页面传递到 ASP.NET 控制器(SaveConfigurationToFile)中的功能

HTML部分:

<html>
 <table class="table" style="text-align: left; width: 198px; height: 60px;"
           border="1" cellpadding="2" cellspacing="2">
        <tbody>
            <tr>
                <td><text name="Day">Poniedziałek</text></td>
                <td><text name="Day">Wtorek</text></td>
                <td><text name="Day">Środa</text></td>
                <td><text name="Day">Czwartek</text></td>
                <td><text name="Day">Piątek</text></td>
                <td><text name="Day">Sobota</text></td>
                <td><text name="Day">Niedziela</text></td>
            </tr>
            <tr>
                <td><input id="MondayStart" type="time" class="form-control" name="Start"  value="@ViewBag.MondayStart"></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <td><input id="MondayEnd" type="time" class="form-control" name="End" value="@ViewBag.MondayEnd"></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tbody>
    </table>
    <button type="submit" value="Zapisz" class="btn btn-default"> @Html.ActionLink("Zapisz", "SaveConfigurationToFile")</button>
    <br>
</html>

'''''''''''''

控制器部分:

''''''''''''

public ActionResult SaveConfigurationToFile(IFormCollection collection)
        {  
            PortalConfiguration dataToSave = new PortalConfiguration();
            dataToSave.SaveConfigurationData("string","string");
            return View();
        }

我希望有可能将表中输入的数据传递给函数 SaveConfigurationToFile

标签: c#htmlasp.net

解决方案


我使用您的建议并创建模型:

public class ConfigurationData
    {
        //Model for configuration page to be saved in xml
        [Key]
        public string MondayStart { get; set; }
        public string MondayEnd { get; set; }
        public string TuesdayStart { get; set; }
        public string TuesdayEnd { get; set; }
        public string WednesdayStart { get; set; }
        public string WednesdayEnd { get; set; }
        public string ThursdayStart { get; set; }
        public string ThursdayEnd { get; set; }
        public string FridayStart { get; set; }
        public string FridayEnd { get; set; }
        public string SaturdayStart { get; set; }
        public string SaturdayEnd { get; set; }
        public string SundayStart { get; set; }
        public string SundayEnd { get; set; }
        public string email { get; set; }
        public string phone { get; set; }
    }

然后基于模型我创建视图:

 <form asp-controller="Home" asp-action="SaveConfigurationToFile">
        <table class="table" style="text-align: left; width: 198px; height: 60px; margin-left:10px"
               border="1" cellpadding="2" cellspacing="2">
            <tbody>
                <tr>
                    <td><text name="Day">Poniedziałek</text></td>
                    <td><text name="Day">Wtorek</text></td>
                    <td><text name="Day">Środa</text></td>
                    <td><text name="Day">Czwartek</text></td>
                    <td><text name="Day">Piątek</text></td>
                    <td><text name="Day">Sobota</text></td>
                    <td><text name="Day">Niedziela</text></td>
                </tr>
                <tr>

                    <td>
                        <div class="form-group" >
                            <input asp-for="MondayStart" class="form-control" type="time" value="@ViewBag.MondayStart" />
                            <span asp-validation-for="MondayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="ThursdayStart" class="form-control" type="time" value="@ViewBag.ThursdayStart" />
                            <span asp-validation-for="TuesdayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="WednesdayStart" class="form-control" type="time" value="@ViewBag.WednesdayStart"/>
                            <span asp-validation-for="WednesdayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="TuesdayStart" class="form-control" type="time" value="@ViewBag.TuesdayStart" />
                            <span asp-validation-for="ThursdayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="FridayStart" class="form-control" type="time" value="@ViewBag.FridayStart" />
                            <span asp-validation-for="FridayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="SundayStart" class="form-control" type="time" value="@ViewBag.SundayStart"/>
                            <span asp-validation-for="SundayStart" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="SundayStart" class="form-control" type="time" value="@ViewBag.SundayStart" />
                            <span asp-validation-for="SundayStart" class="text-danger"></span>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td>
                        <div class="form-group">
                            <input asp-for="MondayEnd" class="form-control" type="time" value="@ViewBag.MondayEnd"/>
                            <span asp-validation-for="MondayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="TuesdayEnd" class="form-control" type="time" value="@ViewBag.TuesdayEnd"/>
                            <span asp-validation-for="TuesdayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="WednesdayEnd" class="form-control" type="time" value="@ViewBag.WednesdayEnd" />
                            <span asp-validation-for="WednesdayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="ThursdayEnd" class="form-control" type="time" value="@ViewBag.ThursdayEnd"/>
                            <span asp-validation-for="ThursdayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="FridayEnd" class="form-control" type="time" value="@ViewBag.FridayEnd"/>
                            <span asp-validation-for="FridayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="SaturdayEnd" class="form-control" type="time" value="@ViewBag.SaturdayEnd"/>
                            <span asp-validation-for="SundayEnd" class="text-danger"></span>
                        </div>
                    </td>
                    <td>
                        <div class="form-group">
                            <input asp-for="SundayEnd" class="form-control" type="time" value="@ViewBag.SundayEnd" />
                            <span asp-validation-for="SundayEnd" class="text-danger"></span>
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>
        <div class="form-group">
            <input asp-for="email" class="form-control" type="email" value="@ViewBag.email" />
            <span asp-validation-for="email" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input asp-for="phone" class="form-control" type="tel" value="@ViewBag.phone" />
            <span asp-validation-for="phone" class="text-danger"></span>
        </div>
        <button type="submit" value="Zapisz" class="btn btn-default"> Zapisz zmiany</button>
    </form>

然后我能够在后面的代码中获取数据:

public ActionResult SaveConfigurationToFile(ConfigurationData model)
        {

            PortalConfiguration dataToSave = new PortalConfiguration();
            dataToSave.SaveConfigurationData(model.MondayStart, model.MondayEnd,model.ThursdayStart,model.TuesdayEnd, model.WednesdayStart,model.WednesdayEnd,
                model.ThursdayStart,model.ThursdayEnd,model.FridayStart, model.FridayEnd, model.SaturdayStart, model.SaturdayEnd, model.SundayStart,model.SundayEnd,
                model.email, model.phone);
            return Redirect("../Home/Configuration");
        }

现在工作正常


推荐阅读