Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# html.textareafor-解析为字符串数组_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# html.textareafor-解析为字符串数组

C# html.textareafor-解析为字符串数组,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我在C#MVC(.NET)中,有一个表单,其中输入了@html.TextAreaFor 存储为字符串 我假设来自此文本框的数据将存储为字符串,但我想知道的是,字符串在“/n”元素方面会是什么样子,字符串会划出新的线标记吗 理想情况下,我需要逐行解析文本框,其中每行上的字符串成为列表的一个元素 例如,如果文本框中有 item1 item2 item3 然后,当我提交表单时,我指定的模型将加载文本框中的字符串,并使用该字符串加载列表(在其他地方,在不同的模型中…),其中包含item1、

我在C#MVC(.NET)中,有一个表单,其中输入了@html.TextAreaFor 存储为字符串 我假设来自此文本框的数据将存储为字符串,但我想知道的是,字符串在“/n”元素方面会是什么样子,字符串会划出新的线标记吗

理想情况下,我需要逐行解析文本框,其中每行上的字符串成为列表的一个元素 例如,如果文本框中有

  item1
  item2
  item3

然后,当我提交表单时,我指定的模型将加载文本框中的字符串,并使用该字符串加载列表(在其他地方,在不同的模型中…),其中包含item1、item2、,和项3。

假设将
TextAreaFor
绑定到名为
TextAreaModel
的模型属性,该属性包含来自用户输入的字符串,如下所示:

@model ViewModel

@Html.TextAreaFor(m => m.TextAreaModel, new { ... })
从模型属性中提取行的正确方法是使用
Environment.NewLine
作为POST-action方法中的分隔符拆分字符串内容,如下例所示:

[HttpPost]
public ActionResult SubmitForm(ViewModel model)
{
    // other stuff   

    // parse every textarea lines as list elements
    List<string> list = model.TextAreaModel.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

    // assign it to other list property on other model
    OtherModel.OtherList = list;

    // other stuff

    return View(model);
}
[HttpPost]
公共行动结果提交表单(视图模型)
{
//其他东西
//将每个textarea行解析为列表元素
List List=model.TextAreaModel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries.ToList();
//将其指定给其他模型上的其他列表属性
OtherModel.OtherList=列表;
//其他东西
返回视图(模型);
}
注意:
StringSplitOptions.RemoveEmptyEntries
将删除源字符串中的空行,我认为这是比使用
StringSplitOptions.None更推荐的方法

演示:

相关问题:


假设您将
TextAreaFor
绑定到名为
TextAreaModel
的模型属性,该属性包含来自用户输入的字符串,如下所示:

@model ViewModel

@Html.TextAreaFor(m => m.TextAreaModel, new { ... })
从模型属性中提取行的正确方法是使用
Environment.NewLine
作为POST-action方法中的分隔符拆分字符串内容,如下例所示:

[HttpPost]
public ActionResult SubmitForm(ViewModel model)
{
    // other stuff   

    // parse every textarea lines as list elements
    List<string> list = model.TextAreaModel.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

    // assign it to other list property on other model
    OtherModel.OtherList = list;

    // other stuff

    return View(model);
}
[HttpPost]
公共行动结果提交表单(视图模型)
{
//其他东西
//将每个textarea行解析为列表元素
List List=model.TextAreaModel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries.ToList();
//将其指定给其他模型上的其他列表属性
OtherModel.OtherList=列表;
//其他东西
返回视图(模型);
}
注意:
StringSplitOptions.RemoveEmptyEntries
将删除源字符串中的空行,我认为这是比使用
StringSplitOptions.None更推荐的方法

演示:

相关问题:


使用
列表=新列表();string[]lines=textareamodel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries)
,然后使用
foreach(行中的字符串行){list.Add(line);}
。如果这个技巧奏效的话,我可以作为答案来写。好的,我会尝试一下,看看它是否可以在一行中完成
List=textraemodel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries)。ToList()
@mmushtaq我同意你使用
ToList()
as
List
,但是,让我们看看OP是否首先解决了他的问题;string[]lines=textareamodel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries)
,然后使用
foreach(行中的字符串行){list.Add(line);}
。如果这个技巧奏效的话,我可以作为答案来写。好的,我会尝试一下,看看它是否可以在一行中完成
List=textraemodel.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries)。ToList()
@mmushtaq我同意你使用
ToList()
as
List
,但是让我们看看OP是否首先解决了他的问题。如果验证了它的有效性,thanksI必须确保我将属性存储为字符串而不是字符串[],否则Split方法不适用。一旦我更改了,它就工作得很好。我必须确保我将属性存储为字符串而不是字符串[],否则Split方法不适用。一旦我改变了,它就工作得很好。