使用带有变量值的模型分配文本框

时间:2013-10-11 10:01:21

标签: c# linq asp.net-mvc-4

我在视图中有4个文本框,因为我的表格结构,我需要在变量中分配从数据库中获取的值。现在我面临的问题是为视图中的控件赋值并使用相同的控件更新相同的数据库。请帮助,

public ActionResult Index()
{
    // SettingsModel smodel = new SettingsModel();
    // tblSettings tableset = new tblSettings();

    var dat = _Settings.GetSettings().ToDictionary(s => s.Desc, s => s.Settings, StringComparer.Ordinal);
    return View();
}
  

// dat我得到了来自tablestructure的所有值。我无法想象   将这些值应用于我在视图中使用模型的文本框。如   我需要使用文本框

更新同一个表

表格结构: ID(int),设置(nvarchar),Desc(nvarchar)

enter image description here

更新:

@(Html.Kendo().TimePicker()
   .Name("startpicker")
   .Interval(60)
 //.Value("10:00 AM")
   )
@(Html.Kendo().TimePicker()
   .Name("endpicker")
   .Interval(60)
 //.Value("10:00 AM")
   )
 <td>@Html.TextBoxFor(Model => Model.DefaultState, new { @class = "k-textbox", style = "width: 118px;", id = "statetxt" }) </td>

谢谢你的回复。我获得除了tooltipcheckbox和kendo timepicker之外的所有值:

HEre是我在控制器中的代码:

  settingsmodel smodel=new settingsmodel();
      if (dat.ContainsKey("Tooltips"))
      smodel.tooltip =Convert.ToBoolean(dat["Tooltips"]);
     

//我在工具提示中得到值0   //它会抛出错误,因为字符串未被识别为有效的布尔值

settingsmodel:

 public bool tooltip { get; set; }

3 个答案:

答案 0 :(得分:1)

您应该将模型传递到视图中。

public ActionResult Index()
{
    // SettingsModel smodel = new SettingsModel();
    // tblSettings tableset = new tblSettings();

    var dat = _Settings.GetSettings().ToDictionary(s => s.Desc, s => s.Settings, StringComparer.Ordinal);
    return View(dat); //dat is your model.
}

在视图中,您可以从模型中获取数据。

您的模型看起来像字典,您的视图方面将类似于以下内容。

@foreach (KeyValuePair<string, string> item in ((IDictionary<string, string>) Model))
{
    <input type="text">@item.Value</input>
}

答案 1 :(得分:1)

请将您的模型传递给视图。

改变这个:

return View();

return View(dat);

希望这有效

答案 2 :(得分:1)

您可以按如下方式实现:

  1. 将模型传递给视图

    public ActionResult Index()
    {
        var model = //your model
        return View(models); 
    } 
    
  2. 创建Strongly type View

    @model YourModelTypeName
    
    @using (Html.BeginForm("TestHtmlRedirect", "Home", FormMethod.Post, null))
    {
        // Your Controls
        // for Eg:
        // @Html.textboxfor(m => Model.Setting); // will create text box for setting property   
    <input type="submit" value="submit" />
    }
    
  3. 按照以下方式在后期操作中捕获模型:

    [HttpPost]
    public ActionResult Index(ModelType model)
    {
        // on submitting your text box values entered by ysers will get bind in model
        // Your model will contain all values entered by user 
    }