我使用c#MVC3 &剃须刀,实体框架和Linq。表单中的自动填充字段? []
我有一个表格,有两个字段,第一个客户端ID和第二个店名。 我想,当用户输入ID,然后我的StoreName字段自动填充...数据将来自存储这两个数据的数据库。
我使用c#MVC3 &剃须刀,实体框架和Linq。表单中的自动填充字段? []
我有一个表格,有两个字段,第一个客户端ID和第二个店名。 我想,当用户输入ID,然后我的StoreName字段自动填充...数据将来自存储这两个数据的数据库。
您可以使用AJAX。因此,请设置一个控制器操作,以客户端ID作为参数,然后查询您的数据库并将相应的商店名称作为JSON结果返回。然后订阅包含商店标识的文本输入的.blur
事件,并向控制器操作发送AJAX调用以填充第二个输入字段。
是的,我知道,毫无意义的jibber-jabber,给我的代码。
这里:
public ActionResult GetStoreName(int clientId)
{
// of course thath's just an example here. I have strictly no idea
// what database access technology you are using, how your models look like
// and so on. Obviously you will have to adapt this query to your data model.
var client = db.Clients.FirstOrDefault(x => x.Id == clientId);
if (client == null)
{
return HttpNotFound();
}
return Json(new { storeName = client.Store.Name }, JsonRequestBehavior.AllowGet);
}
现在假设有如下观点:
<div>
@Html.LabelFor(x => x.ClientId)
@Html.TextBoxFor(x => x.ClientId, new { id = "clientId", data-url = Url.Action("GetStoreName") })
</div>
<div>
@Html.LabelFor(x => x.Store.Name)
@Html.TextBoxFor(x => x.Store.Name, new { id = "storeName" })
</div>
在一个单独的JavaScript文件,你可以订阅.blur
事件的第一个文本框,并触发AJAX请求控制器向其发送由用户输入的客户端ID。在成功回调中,您将更新第二个带有AJAX调用结果的文本框:
$(function() {
$('#clientId').blur(function() {
var clientId = $(this).val();
$.ajax({
url: $(this).data('url'),
type: 'GET',
cache: false,
data: { clientId: clientId },
success: function(result) {
$('#storeName').val(result.storeName);
}
});
});
});
非常感谢,你给了我超过我的预期。我会处理它 – Alternative
我有这个线'新的{id =“clientId”,data-url = Url.Action(“GetStoreName”)}'上的“url-data”的问题。它说它并不存在于实际的环境中。它是什么,这个属性是什么? – Alternative
它会自动完成哪些数据?基于什么信息?所以你有一个由用户键入的名字。姓氏从哪里来?数据库?如果有多个与给定名字关联的姓氏会怎样?另外,不要忘记在你的问题中提及[你已经尝试过](http://mattgemmell.com/2008/12/08/what-have-you-tried/),以及你遇到的具体困难你试过的代码。 –
我已经更新了我的问题,我希望它会更清楚一点......我想尝试一些东西,但我真的不知道如何去做,在互联网上开始或寻找什么。 .. – Alternative