1

我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。

我也在使用实体框架和代码优先方法。

在一个视图中,我有一个 DropDownList 和一个按钮以及一个 TextArea。

当我单击按钮时,DropDownList 中的选定值将添加到 TextArea。

添加的值由空格“”和使用脚本分隔。

这是视图的代码:

<fieldset><legend>Gestion</legend>

        <div>
        <%:Html.Label("Fonction :")%>
        <%: Html.DropDownList("SelectedFonction",null, new{ id = "ff" })%></div>
        <br />
        <div><input type="button" value="Ajouter" id="aj"  onclick="addtext()"/></div>
        <br />
        <div>
        <textarea id="tt" cols="10"  name="S1" rows="8" readonly="true"></textarea>
        </div>
</fieldset>
<script language="javascript" type="text/javascript">
    var storedValues = [];
    function addtext() {

        var ff = document.getElementById('ff');
        var tt = document.getElementById('tt');


        var selectedValue = ff.options[ff.selectedIndex].value + " ";
        if (storedValues.indexOf(selectedValue) === -1) {
            storedValues.push(selectedValue)
            tt.value = storedValues.join('')
        }

    }
</script>

这就是我在控制器中所做的:

Fonction_Poste FP = new Fonction_Poste();
            var value1 = Request["S1"];
            FP.ID_Fonction = value1;

此代码仅在我在 TextArea 中输入一个值时可用。

当用户添加许多值时,它们被存储在由彼此之间的空格分隔的文本区域中。

所以我必须将它们保存在一个表格中,但我没有找到如何消除这些空间。

4

2 回答 2

1

当您在 javascript 中使用时,您可以使用其他一些分隔符,例如 ~。如下图所示

<script language="javascript" type="text/javascript">
var storedValues = [];
function addtext() {

    var ff = document.getElementById('ff');
    var tt = document.getElementById('tt');


    var selectedValue = ff.options[ff.selectedIndex].value + " ";
    if (storedValues.indexOf(selectedValue) === -1) {
        storedValues.push(selectedValue)
        tt.value = storedValues.join('~')
    }

}

在模型中,你应该有这样的

public class Fonction_Poste {
public List<string> ID_Fonction {get;set;}

}

在 Action 方法中,您可以像下面这样使用,

var value1 = Request["S1"];
FP.ID_Fonction = value1.contains('~')?value1.split('~').ToList():null;

或者,您可以创建一个 javascript 数组,然后将每个项目推送到数组中,然后使用 JSON 将数据发布到控制器,以便通过默认模型绑定自动绑定到列表。

选择适合您要求的方法。我会投票支持基于 Javascript 数组的发布机制,该机制易于使用,无需使用特殊字符加入和拆分。

于 2013-05-26T17:52:36.610 回答
0

split it by spaces

var requireddata=listdata.split("");

it automatically store the data in a array

于 2013-05-27T09:13:40.653 回答