天道酬勤,学无止境

在 mvc 实体框架中的下拉选择中填充文本框(Fill textbox on dropdown selection in mvc entity framework)

问题

我正在使用 Asp.net MVC5 和实体框架。我是这两种技术的新手。

基本上我创建了一个表单,当我从 DropDown 中选择值时,在这个表单中可以使用一个 DropDown。 我想填写此表单上也可用的文本框。

这是我的控制器

public class ChainController : Controller
{
    private hcEntities db = new hcEntities();

    // GET: Chain
    public ActionResult Index()
    {
        ViewBag.name = new SelectList(db.chains,"code","name");
        return View(db.chains.ToList());
    }
}

看法:-

<div class="form-horizontal">
    <hr />
    <div class="form-group">
        <label class="col-sm-2 control-label">
            Select Chain
        </label>
        <div class="col-md-3">            
            @Html.DropDownList("name" , null, new { @class = "form-control" })           
        </div>
    </div>
 @using (@Html.BeginForm())
 {
    @Html.AntiForgeryToken()
    <div class="form-group">
        <label class="col-sm-2 control-label">
            Chain UserName
        </label>
        <div class="col-md-3">            
           @Html.TextBox("ChainName", null, new { @class = "form-control" }) //WHAT DO I DO HERE???????
        </div>
    </div>
 }
</div>

模型(由EF生成的chain.cs)

public partial class chain
{
    public long chain_id { get; set; }
    public string name { get; set; }
    public string code { get; set; }
    public string username { get; set; }
    public string password { get; set; }
    public long created_by { get; set; }
    public System.DateTime created_on { get; set; }
    public Nullable<long> updated_by { get; set; }
    public Nullable<System.DateTime> updated_on { get; set; }
    public chain()
    {
        created_by = 1;
        created_on = DateTime.Now;
    }
}

我不知道下一步会是什么。 如何从下拉列表中选择用户名的值填充文本框。 我在 stackoverflow 中找到了太多答案,但我填写这些对我没有帮助。 例如在mvc中选择下拉列表填充文本框,如何根据MVC中的下拉选择填充文本框..?

帮我 !

回答1

您可以将选择列表参数从“代码”更改为“用户名”,并在视图上使用一些 jQuery 代码。 我为你创建了一个简单的例子,请看:

在我的控制器中:

List<temp> tempLIst = new List<temp>();
tempLIst.Add(new temp() { Id = 1, code = "111", name = "first", username = "user first" });
tempLIst.Add(new temp() { Id = 1, code = "222", name = "second", username = "user second" });
tempLIst.Add(new temp() { Id = 1, code = "333", name = "third", username = "user third" });
tempLIst.Add(new temp() { Id = 1, code = "444", name = "four", username = "user four" });

ViewBag.name = new SelectList(tempLIst, "username", "name");
return View();

这里的 temp 是具有属性(Id、代码、名称和用户名)的类

在我看来

<div>
temp list: @Html.DropDownList("name",(IEnumerable<SelectListItem>)@ViewBag.name,"select value")
@Html.TextBox("txtValue")
</div>

这是我在此视图页面上使用的一些脚本部分。

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script>
    $(document).ready(function () {
        $('#name').change(function () {
        $('#txtValue').val($(this).val());
        });
    });
</script>

现在,当您运行此代码片段时,文本框值将根据所选下拉列表的值而变化。

回答2

我是自己做的。 这是解决方案。

之前代码的一些变化

控制器

我使用 ViewData 代替 ViewBag。 两者都运行良好,但我使用 ViewData

    // GET: Chains
    public ActionResult Index()
    {
        ViewData["chain_name"] = new SelectList(db.chains, "code", "name");
        return View(db.chains.ToList());
    }

我还在控制器中创建了一个从数据库中获取数据的函数

    //Action Function 
    [HttpPost]
    public ActionResult Action(string code)
    {
        var query = from c in db.chains
                    where c.code == code
                    select c;

        return Json(query);
    }

之后我通过javascript在我的视图中调用这个动作控制器。

看法

    @using (@Html.BeginForm("Action","chains", FormMethod.Post))
     {
        @Html.AntiForgeryToken()
        <div class="form-horizontal">
            <hr />
            <div class="form-group">
                <label class="col-sm-2 control-label">
                    Select Chain
                </label>
                <div class="col-md-3">
                    @Html.DropDownList("ddlchainname", (SelectList)ViewData["chain_name"], new {         onchange = "Action(this.value);", @class = "form-control" })
                </div>
            </div>
            <div class="form-group">
        <label class="col-sm-2 control-label">
            Chain Name
        </label>
        <div class="col-md-3">
            @Html.TextBox("ChainName", null, new { @class = "form-control" })
        </div>
        <label class="col-sm-2 control-label">
            Username
        </label>
        <div class="col-md-3">
            @Html.TextBox("username", null, new { @class = "form-control" })
                </div>
    </div>
    <div class="form-group">
        <label class="col-sm-2 control-label">
            Chain Code
       </label>
        <div class="col-md-3">
            @Html.TextBox("ChainCode", null, new { @class = "form-control" })
        </div>
    </div>
        </div>
     }

通过下拉菜单 onChange 调用 Javascript 函数

<script type="text/javascript">
function Action(code) {
    $.ajax({
        url: '@Url.Action("Action", "Chains")',
        type: "POST",
        data: { "code": code },
        "success": function (data) {
            if (data != null) {
                var vdata = data;
                $("#ChainName").val(vdata[0].name);
                $("#ChainCode").val(vdata[0].code);
                $("#username").val(vdata[0].username);
            }
        }
    });
}
</script>

这工作很好...

回答3

花了很长时间,我对@ANJYR - KODEXPRESSION 的代码做了一些新的更改,因为它有一些错误,所以新的更改如下:

控制器动作功能的变化:

public ActionResult Action(string code)
    {
        var query = from c in db.chains where c.code == code select new { Code = c.code, Name = c.name, UserName = c.username};
        return Json(query, JsonRequestBehavior.AllowGet);
    }

Javascript 的变化:

<script type="text/javascript">
function Action(code) {
$.ajax({
    url: '@Url.Action("Action", "Chains")',
    type: "POST",
    data: { "code": code },
    success: function (data) {
        if (data != null) {
            var vdata = data;
            $("#ChainName").val(vdata[0].Name);
            $("#ChainCode").val(vdata[0].Code);
            $("#username").val(vdata[0].Username);
        }
    }
}); 
}
</script>

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何基于MVC ..中的下拉选择来填充文本框?(How to populate a textbox based on dropdown selection in MVC..?)
    问题 嗨,我已经创建了一个表,并通过ADO.NET实体将其连接到MVC项目。 连接后,我为实体添加了控制器,它在MVC项目的VIEW文件夹中创建了一组cshtml文件。 但是现在我需要创建一个下拉列表和文本框。 我在cshtml文件中创建了dropdownlist,并在CONTROLLER中编写了它的逻辑。 我也可以创建TEXTBOXES,但是我面临基于下拉列表选择填充TEXTBOX的问题。 VS 2012自动生成的“我的模型”是 public partial class Plan_S { public int PlanId_PK { get; set; } public string PlanNames { get; set; } public string Hours { get; set; } } 我显示下拉列表的控制器为 public class dropdownController : Controller { private PivotEntities db = new PivotEntities(); // // GET: /dropdown/ public ActionResult Index() { ViewBag.plannames = new SelectList(db.Plan_S, "PlanId_PK", "PlanNames"); return
  • 物化CSS-选择似乎不渲染(Materialize CSS - Select Doesn't Seem to Render)
    问题 我目前正在使用物化CSS,似乎我对选择字段一无所知。 我使用的是他们网站上提供的示例,但不幸的是,它始终在视图中呈现。 我想知道是否有人可以提供帮助。 我想做的是创建一个带有2个提供填充的末端间隔的行-然后在内部两行项目中应该有一个搜索文本输入和一个搜索选择下拉列表。 这是我正在使用的示例:http://materializecss.com/forms.html 先感谢您。 这是有问题的代码段。 <div class="row"> <form class="col s12"> <div class="row"> <div class="input-field col s2"></div> <div class="input-field col s5"> <input id="icon_prefix" type="text" class="validate" /> <label for="icon_prefix">Search</label> </div> <div class="input-field col s3"> <label>Materialize Select</label> <select> <option value="" disabled="disabled" selected="selected">Choose your option</option>
  • 如何在MVC4 RazorView中实现Dropdownlist列表图像选择以及文本框(how to implement Dropdownlist list image selection as well as textbox in MVC4 RazorView)
    问题 大家好,我必须实现一个Dropdownlist,其中包含带有国家/地区代码的图像和一个与之相关的文本框,我将与以下所有屏幕截图共享给我,我希望使用MVC4 + Razor在我的表单中实现以下所有视图。我要保存在表单中的一个“移动电话”字段 能否请一个人分享一些示例代码,以便我可以实现,而且我还必须通过表单保存值 回答1 看起来像一个启用了自动完成功能的文本框。 您可以使用jQuery UI库自动完成之类的任何自动完成插件来实现此目的.jQuery ui允许您自定义自动完成选项项的HTML标记以包含图像。 第一步是将jQuery和jQuery UI库加载到您的页面。 接下来,在我们看来,我们需要一个需要此功能的文本框。 <input id="countrySearch" value="" /> 下一步是在控制器中编写一个操作方法,该方法以JSON格式返回所需的数据。 public ActionResult Countries(string term) { var list=new List<CountryVM>(); // Hardcoding 2 items for demo. //to do : read data from your db and build the list. list.Add(new CountryVM { ID=1,Name="US",FlagImg
  • 自动填充文本框,取决于下拉值(Auto fill text box depending on Drop Down value)
    问题 这可能是一个愚蠢的问题,但我想澄清如何解决。 我遇到过很多文章,这些文章可以根据使用jQuery和Ajax的下拉菜单中的选择来设置文本框的值。 我的问题是,根据5个下拉菜单中的选择尝试执行相同操作时。 我将ID值存储在数据库中,该值应用于填充文本框。 任何人都可以通过多个下拉菜单来指导如何解决此问题。 到目前为止,这是我的代码: <?php $sql1="SELECT Schlungen FROM schulung as s"; $result=mysql_query($sql1); echo "<p align='left'> <strong>Schulung 1</strong> <select name='Schlungen1'> <option value default></option>"; while ($row = mysql_fetch_array($result)) { echo "<option value='" . $row['Schlungen'] . "'>" . $row['Schlungen'] . " </option>"; } echo "</select>"; ?> <?php error_reporting(0); //Drop Down for Schulung 2 $sql2="SELECT Schlungen FROM
  • 如何动态更改C#组合框或文本框中的自动完成条目?(How can I dynamically change auto complete entries in a C# combobox or textbox?)
    问题 我在C#中有一个组合框,我想使用自动完成建议,但是我希望能够根据用户类型来更改自动完成条目,因为可能的有效条目太多了,无法在启动时填充AutoCompleteStringCollection 。 例如,假设我让用户输入名称。 我有一个可能的名字列表(“ Joe”,“ John”)和一个姓氏列表(“ Bloggs”,“ Smith”),但是如果我每个都有一千个,那将是一百万个可能的字符串-太多,无法放入自动完成条目。 因此,最初,我只希望使用名字作为建议(“ Joe”,“ John”),然后在用户键入名字(“ Joe”)之后,我想删除现有的自动完成条目并替换为他们添加了一组新名称,其中包括所选的名字以及可能的姓氏(“ Joe Bloggs”,“ Joe Smith”)。 为了做到这一点,我尝试了以下代码: void InitializeComboBox() { ComboName.AutoCompleteMode = AutoCompleteMode.SuggestAppend; ComboName.AutoCompleteSource = AutoCompleteSource.CustomSource; ComboName.AutoCompleteCustomSource = new AutoCompleteStringCollection(); ComboName
  • 可可与微软Qt相比如何?(How does Cocoa compare to Microsoft, Qt?)
    问题 我已经用Qt(仅以编程方式构建的GUI)进行了几个月的开发,现在开始使用Cocoa。 我不得不说,我爱可可。 在Qt中看起来很困难的很多事情对于Cocoa都是容易的。 Obj-C似乎比C ++复杂得多。 可能只有我一个人,所以:你对此有何看法? 与Qt相比,可可粉与WPF(那是正确的框架?)相比如何? Obj-C与C#和C ++相比如何? XCode / Interface Builder与Visual Studio和Qt Creator相比如何? 文档如何比较? 例如,我发现可可的插座/动作比Qt的信号和插槽要有用得多,因为它们似乎涵盖了大多数GUI交互,而我不得不在一半的时间内解决信号/插槽。 (我只是用错了吗?) 同样,XCode的标准模板实际上免费提供给我复制/粘贴,撤消/重做,保存/打开以及许多其他功能,而这些在Qt中是相当复杂的任务。 请仅在您至少具有这些开发环境/框架/语言中的至少两个的实际知识的情况下回答。 回答1 多年来,我一直在与Cocoa / Obj-C合作。 截至2010年,我发现与WPF / NET Framework相比,它具有很大的局限性。 我将列出一些我发现的差异,您可以自己判断。 标记语言 在WPF中进行设计时,会得到非常简单的XML标记,可以使用自己编写的工具轻松进行手工编辑或编辑。 在Cocoa中,我必须使用xib文件
  • 如何用默认文本填充空白文本框?(How do I fill an empty textbox with default text?)
    问题 如果文本框为空,如何用文本填充文本框? 我正在使用VB.NET。 回答1 似乎您正在描述提示横幅,它是显示在空白文本框中的提示文本。 从Windows XP开始,操作系统本身支持此功能。 与在TextChanged事件中自己设置默认文本相比,以这种方式实现的效果要优雅得多。 看起来像这样: 通过向文本框控件发送EM_SETCUEBANNER消息,可以在Windows API级别完成设置。 要在.NET项目中使用此功能,必须使用P / Invoke。 幸运的是,大多数工作已经为您完成。 该示例项目是向现有项目添加提示横幅支持的一种快速而轻松的方法。 这是另一个示例,其中包含对该过程的更完整说明。 如果您不希望您的应用程序依赖于外部DLL,则可以将必要的代码直接添加到您的项目中。 最简单的方法是对现有TextBox控件进行子类化,并在其中添加代码以支持提示横幅。 请参阅此答案以获取所需的代码。 如果在将其转换为VB.NET时遇到问题,请尝试使用此工具。 回答2 如果触发事件时文本框为空,则可能要处理TextChanged事件并设置一些默认文本。 我没有VB.NET示例,但是下面的C#应该太难理解了: public Form1() { this.InitializeComponent(); textBox1.Tag = "Default text"; textBox1.Text =
  • 从ASP.NET MVC下拉列表中获取值(Getting values from an asp.net mvc dropdownlist)
    问题 有人可以帮助我从asp.net mvc的下拉列表中获取值吗? 我可以从文本框等中获取值,但是,如何获取这两件事... 从控制器类中获取下拉列表的“ Selected Item Value” 从控制器类获取下拉列表的所有项目列表 谢谢 回答1 您可以像使用文本框一样从下拉列表中获取选定的值。 使用默认模型绑定 [AcceptVerbs(HttpVerbs.Post)] public ActionResult GetValueExample(string MyList) { //MyList will contain the selected value //... } 或来自FormCollection [AcceptVerbs(HttpVerbs.Post)] public ActionResult GetValueExample(FormCollection form) { string val = form["MyList"]; //... } 或根据要求 [AcceptVerbs(HttpVerbs.Post)] public ActionResult GetValueExample(string MyList) { string val = Request.Form["MyList"]; //or val = Request["MyList"]; //... }
  • C#-Winform重要知识点
    C#-Winform重要知识点 一.创建窗体注意点:二、弹出框三、窗体打开、关闭、方式四、相关控件取值和清空五、显示下拉框中的值,并添加“请选择”六、其它 一.创建窗体注意点: 1、命名 属性:Name 只要在代码里出现的控件,就必须按照规范命名 Label lbl(简写) TextBox txt Button btn ComboBox cbo DataGridView dgv ListView lv TreeView tv RadioButton rdo contextMenuStrip cms 右键菜单 GroupBox grp 分组框 MenuStrip ms 菜单项 ToolStripMenuItem tsmi Panel pnl 面板 DateTimePicker dtp 时间控件 2、标题 属性:Text 3、子窗体在屏幕中央 startPosition:CenterScreen 4、子窗体禁止最大化 Maximinzed:false 5、子窗体禁止最小化 Miniminzed:false 6、子窗体大小固定不变 FormBorderStyle:fixedSingle 7、父窗体设置最大化 windowState:Maximized 8、父窗体设置MDI IsMDIContainer:true 9、下拉框不允许输入值 DropDownStyle:DropDownList
  • DropDownListFor不与重复项目绑定在Edit View上(List )(DropDownListFor not binding on Edit View with repeating items (List<T>))
    问题 这是东西。 我有一个“编辑”视图,当我打开它时,它不绑定下拉菜单的值。 [NonAction] public List<SelectListItem> VraagType() { List<SelectListItem> l = new List<SelectListItem>(); SelectListItem a = new SelectListItem(); SelectListItem b = new SelectListItem(); a.Text = "Meerkeuze"; a.Value = "M"; b.Text = "Open"; b.Value = "O"; l.Add(a); l.Add(b); return l; } [NonAction] public List<SelectListItem> getSchalen() { return _db.EvalSchaals.ToList().ToSelectList(q => q.Sch_Naam, q => q.Sch_ID.ToString(), q => q.Sch_ID == -1).ToList(); } public ActionResult Edit(int id) { ViewData["vraagtype"] = VraagType(); ViewData["schaal"] =
  • C#WinForms垂直对齐的文本框等(C# WinForms Vertical Alignment for TextBox, etc)
    问题 我正在一个项目中,更新其WinForms应用程序UI以使其与尺寸更加一致。 默认情况下,即使使用相同的字体,TextBox和ComboBox控件的高度也不同。 我已经能够通过关闭AutoSize来调整文本框的大小,但是文本仍然紧靠控件的顶部,在下面留有空隙。 有什么办法可以使文本在控件中垂直居中吗? 回答1 如果要在AutoSize上关闭AutoSize ,则它必须是Label ,因为TextBox没有AutoSize属性。 Label的TextAlign属性的类型为ContentAligment ,因此您可以设置水平和垂直对齐方式。 由于各种无聊的原因,Windows中的TextBoxes旨在自动将其高度调整为所使用的字体。 要控制文本的高度并使其垂直居中,您可以快速创建一个自定义UserControl ,您可以使用该UserControl替换所有TextBoxes 。 在您的UserControl ,将BorderStyle设置为Fixed3D ,将BackColor为System.Window 。 添加一个TextBox并将其BorderStyle设置为None 。 在控件的Resize事件中,添加代码,使TextBox与用户控件的客户区具有相同的宽度(考虑边框像素),并将其左对齐(即textBox1.Left = 0; )并将其垂直居中(例如textBox1.Top
  • 使用JavaScript数组填充下拉选择框(use a javascript array to fill up a drop down select box)
    问题 我有一个文本文件,正在读取数据并将其存储在javascript数组中,这是美食列表。 我想使用数组填充下拉选择框。 我知道如何在下拉框的值中进行硬编码(如果我错了,请使用正确的答案),但是我希望能够使用数组来填充它。 <script type="text/javascript"> var cuisines = ["Chinese","Indian"]; </script> <select id="CusineList"></select> 为了简单起见,我对数组进行了硬编码,“ CuisineList”是我的下拉框 回答1 使用for循环遍历数组。 对于每个字符串,创建一个新的option元素,将该字符串分配为其innerHTML和value ,然后将其附加到select元素。 var cuisines = ["Chinese","Indian"]; var sel = document.getElementById('CuisineList'); for(var i = 0; i < cuisines.length; i++) { var opt = document.createElement('option'); opt.innerHTML = cuisines[i]; opt.value = cuisines[i]; sel.appendChild(opt); }
  • 如何检测文本框的内容已更改(How to detect a textbox's content has changed)
    问题 我想检测何时文本框的内容已更改。 我可以使用keyup方法,但是它也可以检测不会产生字母(如箭头键)的击键。 我想到了使用keyup事件执行此操作的两种方法: 仔细检查所按键的ASCII码是否为字母\退格\删除使用闭包来记住按键之前文本框中的文本,并检查是否已更改。 两者看起来都很麻烦。 回答1 开始观察“输入”事件而不是“改变”事件。 jQuery('#some_text_box').on('input', function() { // do your stuff }); ...这很干净,但可以扩展到: jQuery('#some_text_box').on('input propertychange paste', function() { // do your stuff }); 回答2 在HTML /标准JavaScript中使用onchange事件。 在jQuery中,这是change()事件。 例如: $('element').change(function() { // do something } ); 编辑 阅读一些评论后,该怎么办: $(function() { var content = $('#myContent').val(); $('#myContent').keyup(function() { if ($('#myContent').val()
  • ASP:TextBox值仅在使用密码时才在回发中消失(ASP:TextBox Value disappears in postback only when password)
    问题 我有一个像这样的asp.net文本框: <asp:TextBox ID="PINPad" runat="server" Columns="6" MaxLength="4" CssClass="PINTextClass"></asp:TextBox> 您可能已经猜到了,它是屏幕上的PIN键盘上的文本框。 JavaScript会填充值。 该页面每五秒钟发布一次(如果需要的话,使用更新面板)以更新屏幕上其他不相关的项目。 这样很好。 但是,当我将其转换为密码文本框时,如下所示: <asp:TextBox ID="PINPad" runat="server" Columns="6" MaxLength="4" CssClass="PINTextClass" TextMode="Password"></asp:TextBox> 然后,每当页面回发时,都会清除屏幕上的文本框,并且文本框为空(尽管在计时器事件期间,该值的确会将其返回给服务器。) 关于如何解决此问题的任何建议,以便在回发期间保留其价值? 回答1 作为一项安全功能,ASP.NET尝试禁止您将密码值发送回客户端。 如果您对安全性问题没问题(即它不是真正的安全信息,或者您确定连接是安全的),则可以手动设置控件的"value"属性,而不是使用其Text属性。 它可能看起来像这样: this.PINPad.Attributes.Add
  • MVC ViewBag最佳做法(MVC ViewBag Best Practice)
    问题 对于ViewBag,我听说这是不可以使用的。 我认为应该将ViewBag中的内容合并到视图模型中吗? 问题: 我的假设是最佳实践之上。 (不要使用ViewBag,第二次要在视图模型中使用它) 在某些情况下绝对需要ViewBag吗? 回答1 ViewBag是一个动态词典。 因此,当使用ViewBag在操作方法和视图之间传输数据时,如果尝试在视图中访问ViewBag项时在代码中输入错误,则编译器将无法捕获。 您的视图将在运行时崩溃:( 通常,使用视图模型在操作方法和视图之间传输数据是一个好主意。 视图模型是一个简单的POCO类,具有特定于视图的属性。 因此,如果您想传递一些其他数据进行查看,请在视图模型中添加一个新属性并使用它。严格键入的视图可以使代码更整洁且更易于维护。 使用这种方法,您无需将Viewbag字典项显式地转换为来回往返于View Bag的某些类型。 public class ProductsForCategoryVm { public string CategoryName { set;get; } public List<ProductVm> Products { set;get;} } public class ProductVm { public int Id {set;get;} public string Name { set;get;} }
  • Winforms,在使用Dock属性时创建填充(Winforms, creating padding when using Dock properties)
    问题 使用ockerstyle.top属性时,如何在文本框之间添加填充或空白? for(int i =0; i< 10; i++) { textboxes[i] = new TextBox(); textboxes[i].Dock = DockStyle.Top; mypanel.Controls.Add(textboxes[i]); } 上面的代码将文本框置于彼此的正下方。 如果不使用大众面板或固定位置,就无法解决这一问题。 怎么做以下? 1)我想在框之间添加大约10-20像素。 2)如何更改文本框的大小(高度,宽度),因为在使用dockstyle.top时它会忽略size命令? 回答1 使用DockStype.Top,您无法更改TextBoxes的宽度,因为它们已停靠。 您只能更改高度。 但是要更改TextBox的高度,您必须事先设置Multiline = true 。 要获得不同框之间的空间,必须将每个TextBox放在一个面板中,设置TextBox.Dock = Fill , Panel.Padding = 10 Panel.Dock = Top和Panel.Padding = 10 。 现在,每个TextBox之间都有一些空间。 样例代码 for (int i = 0; i < 10; i++) { var panelTextBox =
  • 如何在MVC4剃须刀中的文本框中仅允许数字(How to allow only numbers in textbox in mvc4 razor)
    问题 我有3个文本框,其中包含邮政编码,手机号码和住宅号码。 我从Bellow帖子获得了使用jquery在文本框中仅允许数字的解决方案。 我想让一个EditFor文本框仅接受数字 但是我们可以像使用MVC4剃刀一样使用数据注释来做到这一点吗? 回答1 我只是在玩HTML5输入type = number。 尽管并非所有浏览器都支持它,但我希望它是处理类型特定处理(例如ex的数字)的一种方式。 用剃须刀做起来非常简单(例如VB) @Html.TextBoxFor(Function(model) model.Port, New With {.type = "number"}) 并感谢Lee Richardson的C#方式 @Html.TextBoxFor(i => i.Port, new { @type = "number" }) 超出了问题的范围,但是您可以对任何html5输入类型执行相同的方法 回答2 使用正则表达式,例如 [RegularExpression("([1-9][0-9]*)", ErrorMessage = "Count must be a natural number")] public int Count { get; set; } 回答3 @Html.TextBoxFor(m => m.PositiveNumber, new { @type = "number"
  • tkinter库最全使用教程
    ①导入标准库(tkinter为python标准库无需安装) from tkinter import * ②窗口的创建和设置 窗口的创建和设置方法注释root=Tk()生成主窗口root.geometry(‘250x250’)改变窗体大小(‘宽x高’),注意是x不是*root.geometry(’+450+450’)改变窗体位置(‘+横坐标+纵坐标’)root.title(‘标题名’)修改框体的名字root.mainloop()显示主窗口root.resizable(0, 0)将窗口大小设置为不可变root.resizable(False, False)将窗口大小设置为不可变 from tkinter import * root=Tk() root.geometry('300x300') root.title('hello') root.geometry('+400+300') root.mainloop() ———————————————————————————————————————————— ③ 三种组件位置设置方法(实例包含在下面的组件例子中) -pack() 参数参数值注释side组件位于容器的方位LEFTTOP(默认
  • EF代码优先的查找表最佳实践(Best Practices for Lookup Tables in EF Code-First)
    问题 我正在用EF做我的第一个项目,并且我打算使用代码优先模型。 我正在尝试找到一些有关处理相当经典的“查找表”方案的指导。 我正在处理一个非常规范的情况,我将保留地址数据。 所以,我有一个简单的地址DTO ... public class Address { public int Id { get; set; } public virtual string StreetAddress1 { get; set; } public virtual string StreetAddress2 { get; set; } public virtual string City { get; set; } public virtual string State { get; set; } public virtual string ZipCode { get; set; } } 在state属性中,我想存储标准的美国两个字母的州代码。 为了进行验证,我希望在生成的地址表和相当标准的状态查找表之间具有标准的一对多外键关系。 该表可能包含一个ID,两个字母的代码以及包含完整状态名称的第三列。 我希望使用该状态查找表来填充和声明下拉式样式框等,并且还可以用作对地址实体中提交的State的验证。 相当普通的东西。 因此,我有几个简单的问题(我希望如此)。
  • jQuery的自动完成自动填充字段的第一个值和highligh添加部分(jquery autocomplete auto fill field with 1st value and highligh added part)
    问题 我使用jqueryui自动完成插件与以下代码 $(this).autocomplete({ source: function(request, response) { $.ajax({ url: 'clinic/auto', data: { 'term': this.term,'name': this.element.attr('complete')}, dataType: "json", type: "POST", success: function(data){ response(data); } }); }, minLength: 2 }); 这将显示所有结果列表的下拉列表。 我的问题是如何让您自动完成工作并突出显示添加的部分以便于使用? 我必须编写代码吗? 还是已经有一个选择? 如果我手动做,该怎么办? 图片示例: 到目前为止的解决方案: 我发现此链接,这对编辑样式非常有用(monkey-patching jquery-autocomplete),但仍然不是我想要的。 回答1 不幸的是,没有现成的选择。 幸运的是,有一种非常简单的方法可以使用JQuery Autocomplete提供的事件来实现。 看看这个JSFiddle:http://jsfiddle.net/RyTuV/133/ 您会注意到,要添加的相关代码使用JQuery Autocomplete Open事件