MVC Пользовательский ViewModel и автоматическая привязка

class ScreenReaderMessage extends BcReactComponent {
    constructor (props) {
      super(props);
    }

    handleCopy (e) {
      console.log('Hello world');
      e.preventDefault();
      e.stopPropagation();
    }

    render () {
      const { id, className, ...props } = this.props;
      const fullClassName = className ? `sr-only ${className}` : 'sr-only ok';
      return (
        <span className={fullClassName} id={id} {...props}
            onCopy={(e)=>this.handleCopy(e)}
            onContextMenu={(e)=>this.handleCopy(e)}
          >
          {this.props.children}
        </span>
      );
    }
  }

  ScreenReaderMessage.propTypes = {
    id: PropTypes.string,
    localeKey: PropTypes.string,
    children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
  };

  export default ScreenReaderMessage;

Надеюсь, что это поможет ..

8
задан Craig McGuff 19 April 2009 в 13:25
поделиться

1 ответ

Вам нужен конструктор без параметров, и я считаю, что у свойств должны быть общедоступные установщики. Связыватель по умолчанию создает объект с помощью конструктора, который не принимает параметров, а затем использует отражение в общедоступных свойствах для установки значений из параметров формы / запроса.

public class SampleFormViewModel
{
    public SampleFormViewModel() { }

    public SelectList Companies { get; set; }
    public Widget Widget { get; set; }
}

Я подозреваю, что на самом деле вы действительно хотите получить не модель представления, а базовую модель виджета и выбрать значение списка в сообщении формы. Я не думаю, что связыватель сможет реконструировать SelectList при публикации, так как он имеет только выбранное значение в параметрах.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit( int CompanyID, Widget widget )
{
}
8
ответ дан 5 December 2019 в 17:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: