C# 获取mvc中dropdownlist和textbox的值
我有一个动态生成的dropdownlist和一个静态文本框,我需要在控制器操作中使用哪些值,如何使用,或者最好的方法是什么?或者我的可能性是什么C# 获取mvc中dropdownlist和textbox的值,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有一个动态生成的dropdownlist和一个静态文本框,我需要在控制器操作中使用哪些值,如何使用,或者最好的方法是什么?或者我的可能性是什么 <h2>Content Type Creation</h2> @using(Html.BeginForm("CreateContentType", "ContentType")) { @Html.DropDownList("ContentTypeList", new SelectList(Model, "Id", "N
<h2>Content Type Creation</h2>
@using(Html.BeginForm("CreateContentType", "ContentType"))
{
@Html.DropDownList("ContentTypeList", new SelectList(Model, "Id", "Name"))
<input type="text" id="contentTypeName" />
}
[SharePointContextFilter]
public ActionResult Index() //Index fills the dropdown
{
var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
using (var ctx = spContext.CreateUserClientContextForSPHost())
{
ContentTypeCollection contentTypes = ctx.Web.ContentTypes;
ctx.Load(contentTypes);
ctx.ExecuteQuery();
return View(contentTypes);
}
}
[SharePointContextFilter]
[HttpPost]
public ActionResult CreateContentType(string parentContentTypeId, string contenttypeName)
{
// Create New Content Type
var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
using (var ctx = spContext.CreateUserClientContextForSPHost())
{
Guid fieldId = Guid.NewGuid();
string ctId = string.Format("{0}00{1}", parentContentTypeId, contenttypeName);
// Do not re-create it
if (!ctx.Web.ContentTypeExistsByName(contenttypeName))
{
ctx.Web.CreateContentType(contenttypeName, ctId, "Contoso Content Types");
}
else
{
ViewBag["Message"] = string.Format("Content type with given name and/or ID already existed. Name - {0} ID - {1}", contenttypeName, ctId);
}
}
return View();
}
内容类型创建
@使用(Html.BeginForm(“CreateContentType”、“ContentType”))
{
@DropDownList(“ContentTypeList”,新选择列表(Model,“Id”,“Name”))
}
[SharePointContextFilter]
public ActionResult Index()//索引填充下拉列表
{
var spContext=SharePointContextProvider.Current.GetSharePointContext(HttpContext);
使用(var ctx=spContext.CreateUserClientContextForSPHost())
{
ContentTypeCollection contentTypes=ctx.Web.contentTypes;
ctx.Load(contentTypes);
ctx.ExecuteQuery();
返回视图(contentTypes);
}
}
[SharePointContextFilter]
[HttpPost]
public ActionResult CreateContentType(字符串parentContentTypeId,字符串contenttypeName)
{
//创建新的内容类型
var spContext=SharePointContextProvider.Current.GetSharePointContext(HttpContext);
使用(var ctx=spContext.CreateUserClientContextForSPHost())
{
Guid fieldId=Guid.NewGuid();
字符串ctId=string.Format(“{0}00{1}”,parentContentTypeId,contenttypeName);
//不要重新创建它
如果(!ctx.Web.ContentTypeExistsByName(contenttypeName))
{
CreateContentType(contenttypeName,ctId,“Contoso内容类型”);
}
其他的
{
ViewBag[“Message”]=string.Format(“具有给定名称和/或ID的内容类型已经存在。名称-{0}ID-{1}”),contenttypeName,ctId);
}
}
返回视图();
}
试试这个
视图:
使用(Html.BeginForm(“CreateContentType”、“ContentType”))
{
@DropDownList(“ContentTypeList”,新选择列表(Model,“Id”,“Name”))
}
$(doucment).ready(函数()
{
var url=“@url.Action('CreateContentType','ContentType')”;
$(“#btnsupmit”)。单击(函数()
{
$.ajax({
键入:“POST”,
url:url+'?parentContentTypeId='$(“#ContentTypeList”).val()+'&contenttypeName='+$(“#contenttypeName”).val(),
数据类型:“json”,
contentType:'应用程序/json',
成功:功能(结果){
},
错误:函数(xhr、stat、error){
警报(错误);
}
});
});
});
在视图中使用$(“#ContentTypeList”).val()和$(“#contentTypeName”).val()获取ddl和文本值,并使用ajax将它们传递给控制器操作。如何?给我看一些代码,请你错过了名称标签,contentTypeName的值将不会发布到服务器请解释,名称而不是id?如何将内容类型名称发布到服务器?谢谢,这说明了您的想法,但是如果我想使用服务器端代码进行发布,该怎么办?按钮位于表单内部,它应该自动发出发布请求,对吗?如何从服务器端获取这些值?按钮只有在具有type=“submit”时才会提交,否则您必须自己处理单击操作,就像malkam一样。如果您希望自动提交,请更改按钮类型以提交,并将dropdownlist的id/名称更改为“parentContentTypeId”,以便自动绑定模型
@using(Html.BeginForm("CreateContentType", "ContentType"))
{
@Html.DropDownList("ContentTypeList", new SelectList(Model, "Id", "Name"))
<input type="text" id="contentTypeName" />
<input type="button" id="btnSubmit" value="Submit"/>
}
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script language="javascript" type="text/javascript">
$(doucment).ready(function()
{
var url="@Url.Action('CreateContentType','ContentType')";
$("#btnSubmit").click(function()
{
$.ajax({
type: 'POST',
url: url+'?parentContentTypeId='$("#ContentTypeList").val()+'&contenttypeName='+$("#contentTypeName").val(),
dataType: 'json',
contentType: 'application/json',
success: function (result) {
},
error: function (xhr, stat, error) {
alert(error);
}
});
});
});